Я пытаюсь добавить этот URL в urlpatterns моего приложения (т.е. MyProject / MyApp / urls.py):
url(r'^login/$', auth_views.LoginView.as_view(), name='login')
У меня есть этот фрагмент в одном из моих шаблонов:
<a href="{% url 'login' %}">Login</a>
Обычно, нажав на ссылку, вы успешно попадаете на страницу входа. Однако, когда я пытаюсь добавить пространство имен в мои URL-адреса (app_name = my_namespace) и изменить обратное на
<a href="{% url 'my_namespace:login' %}">Login</a>
Происходит сбой, когда я нажимаю на ссылку и получаю ошибку
Reverse for 'login' not found. 'login' is not a valid view function or
pattern name.
В то время как все другие URL-адреса, с которыми я обращаюсь, работают с пространством имен, происходит сбой только входа в систему. Есть идеи почему?
Изменить: MyProject / MyProject / urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^clubinfo/', include('ClubInfo.urls')),
]
MyProject / MyApp / urls.py :
app_name = 'clubinfo'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^register/$', views.register, name='register'),
url(r'^login/$', auth_views.LoginView.as_view(), name='login'),
]
Фрагмент шаблона:
<a href="{% url 'clubinfo:index' %}">Home</a>
<a href="{% url 'clubinfo:login' %}">Login</a>
<a href="{% url 'clubinfo:register' %}">Register</a>
Я могу нажать Дом и Зарегистрироваться, а не войти
Редактировать 2: auth_views из этого импорта:
from django.contrib.auth import views as auth_views
Я думаю, что это может быть связано с тем, почему программа вызывает ошибку.
3 ответа
Оказывается, проблема была в моем файле login.html, который Django отображает в своем LoginView. Я не использовал пространство имен в одном из моих обращений в этом файле.
В вашем проекте URL делают это:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^clubinfo/', include('ClubInfo.urls', namespace='clubinfo')),
]
Сейчас в Clubinfo URL: удалить
app_name = 'clubinfo'
Снова запустите сервер и попробуйте, что мой способ работы
Я считаю, что ваш
app_name = ' clubinfo '
, но ваши urlpatterns
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^clubinfo/', include('**ClubInfo**.urls')),
]
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.