Django项目 - 两个app的两个视图在一个url中如何解决

时间:2017-08-21 10:51:43

标签: python django django-apps

在我的django项目中,我为登录用户创建了一个应用程序。 另一个注册用户的应用程序。 但是在我的.html模板中,同一页面上的注册和登录功能都表示在一个带有一个.html文件的URL中。 基本上显示它意味着我必须在一个URL和一个.html文件中使用两个应用程序两个不同的视图。怎么可能 无法将它们组合在一个应用程序中,因为这两个应用程序还具有许多其他相关功能。 我应该根据html页面/或一个url one app方法制作不同的应用程序吗?

1 个答案:

答案 0 :(得分:0)

一个网址不能有两个观看次数。

但是您可以创建一个视图并将URL链接到该视图,并在该视图中决定应该使用哪个函数。

如果您在一个页面中同时拥有登录和注册表单,那么您可以使用2种不同的表单,然后决定应该使用哪种功能。

这是我的解决方案:

1 - 为您的网址制作单一视图

2 - 制作2个表格,一个用于注册,一个用于登录。

3 - 在您的模板中为您的提交按钮添加名称,并根据其形式为其提供值:

# login form
<form>
    # form fields
    <button type="submit" name="button-name" value="login">
</form>

# signup form
<form>
    # form fields
    <button type="submit" name="button-name" value="signup">
</form>

现在在您的视图中,您可以决定应该使用哪个功能:

if request.POST.get('button-name') and request.POST.get('button-name') == "signup":
    # signup the user
elif request.POST.get('button-name') and request.POST.get('button-name') == "login":
    # login the user

我不建议您在此视图中调用另一个视图,因为视图应该呈现模板或...但我建议您为登录和注册创建2个不同的功能,它们可以在任何地方并调用它们并决定什么你想根据他们将返回的内容做。

或者你可以在这里做所有事情。