django 1.10 одна страница приложения со ссылкой на другую страницу приложения

Я новичок на сервере 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

Я знаю, что мне, вероятно, нужно добавить строку url в файл urls.py моего первого приложения и просмотреть его, но как я могу это сделать? Может ли кто-нибудь помочь мне с этим, очень ценю.

1 ответ

Решение

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

эта строка использует реверсирование URL, 'allauth:base' это шаблоны URL, allauth префикс - это пространство имен, base это именованный URL. Сначала вы должны определить пространство имен и именованный URL в urls.py.

Определите ваше пространство имен в файле 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')),
]

Определите свой именованный URL в файле urls.py приложения следующим образом:

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

вся необходимая помощь находится в этом документе: именование шаблонов URL

Другие вопросы по тегам