它给出错误:找不到“登录”的反向。 “登录”不是有效的 View 功能或模式名称。
它说NoReverseMatch。
尝试用account:login替换url登录,但是没有用。
{% if user.is_authenticated %}
<form id="logoutForm" action="/logout/" method="post" class="navbar-right">
{% csrf_token %}
<ul class="nav navbar-nav navbar-right">
<li><span class="navbar-brand">Hello {{ user.username }}!</span></li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
</form>
{% else %}
<ul class="nav navbar-nav navbar-right">
<li><a href="{% url 'login' %}">Log in</a></li>
</ul>
{% endif %}
我的帐户应用网址文件:
urlpatterns = [
path('login/',
LoginView.as_view
(
template_name='accounts/login.html',
authentication_form=forms.BootstrapAuthenticationForm,
extra_context=
{
'title': 'Log in',
'year' : datetime.now().year,
}
),
name='login'),
path('logout/', LogoutView.as_view(next_page='/'), name='logout'),
path('signup/', views.signup, name='signup'),
]
我的主要网址文件:
urlpatterns = [
path('', views.home, name='home'),
path('', include('accounts.urls')),
path('contact/', views.contact, name='contact'),
path('about/', views.about, name='about'),
path('admin/', admin.site.urls),
]
我不知道该怎么办,尝试了很多东西。
最佳答案
account/urls.py 文件应添加 auth_views :
from django.contrib.auth import views as auth_views
urlpatterns = [
path('login/',
auth_views.LoginView.as_view
(
template_name='accounts/login.html',
authentication_form=forms.BootstrapAuthenticationForm,
extra_context=
{
'title': 'Log in',
'year' : datetime.now().year,
}
),
name='login'),
path('logout/', auth_views.LogoutView.as_view(next_page='/'), name='logout'),
path('signup/', views.signup, name='signup'),
]
请对登录网址使用以下代码。实际上,您对两个不同的URL使用相同的路由:
urlpatterns = [
path('', views.home, name='home'),
path('accounts/', include('accounts.urls')),
path('contact/', views.contact, name='contact'),
path('about/', views.about, name='about'),
path('admin/', admin.site.urls),
]
关于python - 找不到 'login'的反向按钮。 'login'不是有效的 View 函数或模式名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59801689/