簡體   English   中英

Django重定向將視圖視為URL

[英]Django Redirect treating view as a URL

出於某種原因,Redirect認為我對視圖“ clients.views.teacher_profile”的調用是一個URL,將其直接放在地址欄中,如下所示:

找不到頁面截圖

如何將其鏈接到視圖而不將其視為URL?

注意:我已經更改了一些設置以適應django-allauth。

我的代碼:

#views.py
def teacher_profile(request, username):
    user = get_object_or_404(User, username=username)
    context = {
        'user':user,
        'teacher':user.teacher,
    }
    return render(request, 'clients/teacher_profile.html', context)

def edit_profile(request):
    teacher = get_object_or_404(Teacher, user=request.user)
    if request.method == 'POST':
        form = TeacherForm(request.POST, instance=teacher)
        if form.is_valid():
            teacher = form.save(commit=False)
            teacher.user = request.user
            teacher.save()
            return redirect('clients.views.teacher_profile', username=request.user.username)
    else:
        form = TeacherForm(instance=teacher)
    return render(request, 'clients/edit_profile.html', {'form':form})

#urls.py
urlpatterns = [
    url(r'^list/$', views.teacher_list, name='teacher_list'),
    url(r'^(?P<username>[\w.@+-]+)/$', views.teacher_profile, name='teacher_profile'),
    url(r'^accounts/settings/$', views.edit_profile, name='edit_profile'),
]

不要在調用中使用視圖的模塊路徑進行重定向; 使用您在網址格式中明確定義的名稱。

return redirect('teacher_profile', username=request.user.username)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM