'authapp'不是注册的名称空间

错误消息

  

'authapp'不是注册的名称空间

我在DJango中创建了Django应用,并将其命名为authapp。根应用程序名称为练习1,内部应用程序名称为authapp。下面是目录结构。

'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')),views.home)
]

authapp中的url.py

from django.urls import path
from .import views

app_name = 'authapp'

urlpatterns = [
    path('login',views.login)
]
ahu3129 回答:'authapp'不是注册的名称空间

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')
本文链接:https://www.f2er.com/3154814.html

大家都在问