这是我第一次使用Django登录模板,遇到了问题。它一直说登录不是有效的视图功能,但我在用户应用程序的urls.py中定义了它:
不确定我做错了什么。
主要urls.py
urlpatterns = [
path('', include('blogging_logs.urls', namespace='blogging_logs')),
path('users/', include('users.urls', namespace='users')),
path('admin/', admin.site.urls),
]
应用程序:blogging_logs:base.html
<p>
<a href="{% url 'blogging_logs:index' %}">Home</a>
<a href="{% url 'blogging_logs:categories' %}">Categories</a>
{% if user.is_authenticated %}
Hello, {{ user.username }}.
{% else %}
<a href="{% url 'users:login' %}"> login in</a>
{% endif %}
</p>
{% block content %}{% endblock content %}
应用程序:用户:urls.py
from django.contrib import admin
from django.urls import re_path, path
from django.contrib.auth import authenticate, login
from django.contrib.auth import views as auth_views
app_name = 'users'
urlpatterns = [
# Login Page
path('login/', auth_views.LoginView.as_view(template_name='login.html')),
]
应用程序:用户:login.html
{% extends "blogging_logs/base.html" %}
{% block content %}
{% if form.errors %}
<p>Your username and password din't match. Please try again.</p>
{% endif %}
<form class="" method="post" action="{% url 'users:login' %}" >
{% csrf_token %}
{{ form.as_p }}
<button name='submit'> Login in </button>
<input type="hidden" name="next" value="{% url 'blogging_logs:index' %}" />
</form>
{% endblock content %}
答案 0 :(得分:0)
您缺少path
函数的name
参数:
更改以下行
path('login/', auth_views.LoginView.as_view(template_name='login.html')),
到
path('login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'),