错误消息
'authapp'不是注册的名称空间
我在DJango中创建了Django应用,并将其命名为authapp。根应用程序名称为练习1,内部应用程序名称为authapp。下面是目录结构。
设置文件代码
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'authapp'
]
在内部应用程序中,下面是views.py代码。
from django.shortcuts import render
def login(request):
if(request.method == "POST"):
return render(request, 'login1.html')
else:
return render(request, 'login.html')
下面是authapp中登录模板中的代码。
<form method="post" action="{% url 'authapp:login' %}">
{% csrf_token %}
<input type="text" name="email" class="form-control">
<input type="password" name="password" class="form-control">
<button type="submit" class="btn btn-primary">
Login
</button>
</form>
我想念什么吗?
编辑1
下面是urls.py中根目录下的代码
from django.contrib import admin
from django.urls import path, include
from .import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('authapp.urls')),
path('', views.home)
]
authapp中的url.py
from django.urls import path
from .import views
app_name = 'authapp'
urlpatterns = [
path('login', views.login)
]
答案 0 :(得分:0)
action="{% url 'authapp:login' %}"
在这里,您使用的是app_name authapp
,因此您还需要在authapp URL中提供app_name
,如下所示:
authapp / urls.py
app_name='authapp'
urlpatterns = [..]
在django中,您还不需要 if条件
中的寄生虫编辑:您需要命名您的URL。参见docs
path('login', views.login,name='login')