django 1.10一个应用页面,链接重定向到另一个应用页面

时间:2017-01-04 03:01:43

标签: django django-templates jinja2 python-3.5 django-allauth

我是django服务器的新手,并尝试构建一个简单的用户注册网站。这是问题,我用index.html创建自己的应用程序作为我的主页。我还使用了另一个用户注册应用程序:

https://github.com/pennersr/django-allauth/tree/master/allauth

我正在尝试将该应用添加到我的主页并注册'链接。基本上,帐户部分,理想情况下,链接可以指向:http://127.0.0.1:8000/accounts/login/

然而,当我运行服务器时,它给了我错误:

 Reverse for 'base' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

服务器结果:

两个应用程序都可以单独运行,但是当我尝试将链接添加到我的主页时,会发生错误。

我的第一个应用中的index.html文件中的相关代码:

<li><a href="{% url 'allauth:base' %}">Log In</a></li>

我项目中index.html的完整路径是:

 project/app1/templates/app1/index.html

我项目中base.html的完整路径是:

 project/allauth/templates/base.html

我知道我可能需要在我的第一个应用程序的urls.py文件中添加一个url行,并显示一个视图,但我该怎么办呢?任何人都可以帮助我,非常感谢。

1 个答案:

答案 0 :(得分:0)

  

<li><a href="{% url 'allauth:base' %}">Log In</a></li>

此行使用URL反转,'allauth:base'是URL模式,allauth前缀是命名空间,base是命名URL。您必须首先在urls.py中定义命名空间和命名URL。

在项目的urls.py文件中定义您的命名空间,如下所示:

from django.conf.urls import include, url

urlpatterns = [
    url(r'^author-polls/', include('polls.urls', namespace='author-polls')),
    url(r'^publisher-polls/', include('polls.urls', namespace='publisher-polls')),
]

在app的urls.py文件中定义您的命名URL,如下所示:

from django.conf.urls import url

from . import views

app_name = 'polls'
urlpatterns = [
    url(r'^$', views.IndexView.as_view(), name='index'),
    url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
    ...
]

您需要的所有帮助都在本文档中:Naming URL patterns