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

时间:2019-11-06 05:21:17

标签: python django

错误消息

  

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

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

enter image description here

设置文件代码

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)
]

1 个答案:

答案 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')