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