Python 关于重定向的Django问题

Python 关于重定向的Django问题,python,django,django-authentication,Python,Django,Django Authentication,我在/上有一个页面,显示注册新用户的表单。 当新用户注册时,它将重定向到/dashboard 但是,当经过身份验证的用户转到/时,它应该会看到/dashboard页面。 问题是:我是否应该在home()视图中放置类似的内容: 或者这是一个丑陋的方法,我应该根据用户的身份验证状态从my home()返回不同的模板吗?在这种情况下,如何自定义URL以显示/dashboard而不是/?重定向方法完全可以。不知道你说的丑陋是什么意思。重定向也应该解决您的URL问题 如果我理解正确,您有一个“仪表板”,它

我在/上有一个页面,显示注册新用户的表单。 当新用户注册时,它将重定向到/dashboard

但是,当经过身份验证的用户转到/时,它应该会看到/dashboard页面。 问题是:我是否应该在home()视图中放置类似的内容:


或者这是一个丑陋的方法,我应该根据用户的身份验证状态从my home()返回不同的模板吗?在这种情况下,如何自定义URL以显示/dashboard而不是/?

重定向方法完全可以。不知道你说的丑陋是什么意思。重定向也应该解决您的URL问题

如果我理解正确,您有一个“仪表板”,它仅对经过身份验证的用户可用,因此如果未登录的用户尝试输入它,则应将其重定向到注册表单。对吧?


您考虑过使用中间件吗?这种中间件可以检查用户是否登录,如果没有,则返回注册表单视图,否则继续处理请求,并返回主视图。阅读有关进程请求和进程视图的信息。

重定向有什么问题?你怎么会说它难看?不知道。将每个登录用户从/重定向到/仪表板让我感觉很糟糕。你认为不是吗?也许最好使用一个视图并返回两个不同的模板。但在这种情况下,URL中有一种写入/控制面板的方法?@Fred Collins:你见过网站是如何工作的吗?填写表单后,重定向是必不可少的。为什么不在这里?是的,当然是在一种形式之后。我不是说填表之后。我说的是一个登录用户,他去/应该看到用户仪表板。@Fred Collins:我看不出重定向有什么问题。表格做它们。网站的许多功能都可以重定向。Post重定向Get只是常见重定向的一个示例。为什么您的一个重定向示例在某种程度上不如通常执行的所有其他重定向好?这种重定向有什么问题?是的,你理解对了。事实上,现在我使用了
@login\u required
装饰器,一切都很好。顺便说一下,谢谢你的链接。
if request.user.is_authenticated():
    return HttpResponseRedirect("/dashboard")