python - Django视图中的重定向问题
高洛峰
高洛峰 2017-04-18 09:35:57
[Python讨论组]

想法是如果我已经登入了,然后在输入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")
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHP中文网

不知道你的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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号