python - Django视图中的重定向问题

 专业长膘 发布于 2022-10-27 10:20

想法是如果我已经登入了,然后在输入login的页面时回重定向到相应用户的user下。
我目前的做法是:

if request.user.is_authenticated:
       return HttpResponseRedirect("/account/user/[相应用户名]")

urls.py

    url(r'^login',login_views, name='login'),
    url(r'^logout$',logout_views, name='logout'),
    url(r'^register', register, name='register'),
    url(r'^user/([\w]+)$',Management, name='user'),

不知道有没有比较好的内置函数或者其他的方式来解决呢?谢谢~!
views.py

def login_views(request):
    if request.user.is_authenticated:
        return HttpResponseRedirect("/account/user/das")# redirect test
    else:
        if request.method == 'POST':
            username = request.POST['username']
            password = request.POST['password']

            user_status =authenticate(username=username, password=password)
            if user_status:
                login(request, user_status)
                return JsonResponse({'status':'success','message':'登入成功'})
            else:
                if User.objects.filter(username=username):
                    return JsonResponse({'status':'error', 'message':'密码错误'})
                else:
                    return JsonResponse({'status':'error','message':'用户不存在'})
        return render(request, "sign_in.html")
1 个回答
  • 不知道你的login_views怎么写的?官方的实现方式是通过next字段指定,比如这样:

    <form action="/login" method="post">
        <input type="hidden" name="next" value="/account/user/[相应用户名]">
        <!-- 用户名,密码等其他字段 -->
    </form>

    这是Django中的login函数的声明:

    #django/contrib/auth/view.py
    def login(request, template_name='registration/login.html',
              redirect_field_name=REDIRECT_FIELD_NAME,
              authentication_form=AuthenticationForm,
              current_app=None, extra_context=None):

    其中REDIRECT_FIELD_NAME为常量,其值为next

    2022-10-27 17:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有