重新定义django的家

时间:2014-12-30 20:41:06

标签: python django django-models django-views django-urls

我正在开发一个Django项目,我计划在该项目中创建用户配置文件。我的目标是建立一个标准的登录页面here。登录后,我想重新定义

url(r'^$', 'MyApp.views.home', name='home'),

不显示此页面,而是显示与家庭网址相同的用户个人资料。

例如,www.example.com显示登录屏幕。记录后,您已重定向到www.example.com,但现在可以看到您的个人资料。

如何在Django中执行此操作?

3 个答案:

答案 0 :(得分:1)

您需要进行简单的检查:

if request.user.is_authenticated():
    return HttpResponseRedirect('/profileurl/')

答案 1 :(得分:1)

一种简单的方法是重定向到另一个视图:

MyApp.views

def home(request):
  if request.user.is_authenticated():
    redirect
  else:
    home page

如果您希望实际的url条目加载与主页或修改后的主页不同的模板,您可以轻松地呈现您想要的任何模板以响应url请求而不是发出重定向

答案 2 :(得分:0)

这通常是我如何去做的。您可以根据需要添加上下文。

views.py:

from django.shortcuts import render

def home(request):
    if request.user.is_authenticated():
        return user_home(request)
    else:
        return login_home(request)

def user_home(request)
    return render(request, 'path/to/user_template.html')

def login_home(request)
    return render(request, 'path/to/login_template.html')