首页 文章

登录后无法重定向到查看

提问于
浏览
0

我正在尝试在用户登录时创建重定向 . 例如,当用户尝试访问链接以创建博客帖子时,系统会提示他登录,并在登录后将其重定向到页面以创建帖子 . 我从网址中提取下一个参数 .

blog.urls

from django.conf.urls import url
from blog import views

urlpatterns=[

    url(r'^$',views.index,name="index"),
    url(r'^signup/$',views.signup_view,name="signup_view"),
    url(r'^login/$',views.login_view,name="login_view"),
    url(r'^create-post/$',views.create_blog,name="create_post"),
    url(r'^logout/$',views.logout_view,name="logout_view"),    
]

blog.views:

def login_view(request):

    if request.method == 'POST':
        form=LoginForm(request.POST)
        if form.is_valid():
            username=form.cleaned_data['username']
            password=form.cleaned_data['password']

            user=authenticate(username=username,password=password)
            if user is not None:
                if user.is_active:
                    login(request,user)
                    go_to=request.GET.get('next','/')
                    print go_to
                    return HttpResponseRedirect(go_to)
                else:
                    return HttpResponse("Not active")
            else:
                return HttpResponse("User doesn't exist")

    else:
        form=LoginForm()
    return render(request,'blog/login.html',{'form':form})

和blog / login.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
        <form method="POST" action="/login/">
            {% csrf_token %}
            <table>
                {{form.as_table}}
            </table>
            <button type="submit">Submit</button>
        </form>
</body>
</html>

每当我登录时,它会显示下一个参数为'/',而url中有“next = / create-blog /” . 请建议任何解决方案 .

1 回答

  • 0

    你需要:

    action="/login/{% if request.GET.next %}?next={{ request.GET.next }}{% endif %}"
    

相关问题