Django - 一个URL链接到两个视图?

时间:2014-01-15 03:10:10

标签: django django-forms django-templates django-views django-authentication

对于我的主页,我希望能够拥有通用登录表单,因此我将主页URL链接到通用登录视图,如下所示:

from django.contrib.auth.views import login

urlpatterns = patterns('',
    url(r'^$', login),

现在,我也希望在主页上有注册表单和视图。此视图称为main_page视图。在我的主页网址中,能够同时使用这些视图(以及两个视图呈现的变量)的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

您应该编写自己的视图来执行此操作。您不能使用默认登录视图,但可以使用Django提供的其他部分:

https://docs.djangoproject.com/en/dev/topics/auth/default/#how-to-log-a-user-in 这是您登录用户的方式。

https://docs.djangoproject.com/en/dev/topics/auth/default/#module-django.contrib.auth.forms 如果您不想自己编写,这是一个登录表单。

答案 1 :(得分:0)

如果您将2个网址链接到单个视图,那么Django将仅加载它首先遇到的视图。所以没有必要将2个网址链接到单个视图。

很少有人建议:

  1. 在登录页面上,为什么不给出注册页面的链接,如果用户没有注册,那么他/她可以注册。
  2. 或者使用查询字符串参数区分您的URL。在注册页面的情况下传递查询字符串参数。然后在登录视图中检查查询字符串param,如果存在则将其重定向到注册视图,否则显示登录页面。带有查询字符串的主页网址将如下所示

    http://www.example.com?page=r#您可以为查询字符串

  3. 选择任何键值对