django 1.10 一个应用程序页面带有链接重定向到另一个应用程序页面

标签 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 行,并添加一个 View 来显示它,但我该怎么做呢?谁能帮我解决这个问题,非常感谢。

最佳答案

<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')),
]

在应用程序的 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

关于django 1.10 一个应用程序页面带有链接重定向到另一个应用程序页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41455580/

相关文章:

python - Django 模板嵌套 for 循环

django-templates - 如何在 Django 模板上渲染图像

python - Jinja2 中带有相关变量的 For 循环

python - Flask 中的全局变量不一致

python - DRF一对多序列化——缺少字段的AttributeError

python - 在 Django 中使用受 Oauth2 保护的第三方 API

python - 如何检查 Django 项目中正在使用哪个数据库

python - Django 登录表单

python - 在 Django 模板中使用字典格式化翻译字符串的好方法?

python - Google App Engine 上 Jinja2 的分页