'authapp' не является зарегистрированным пространством имен - PullRequest
0 голосов
/ 06 ноября 2019

Сообщение об ошибке

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

url.py в authapp

from django.urls import path
from .import views

app_name = 'authapp'

urlpatterns = [
    path('login', views.login)
]

1 Ответ

0 голосов
/ 06 ноября 2019

action="{% url 'authapp:login' %}" здесь вы используете имя_приложения authapp, поэтому вам нужно указать app_name внутри ваших URL-адресов authapp, например:

authapp / urls.py

app_name='authapp'
urlpatterns = [..]

Также в Django вам не нужны паратезы в , если условие

РЕДАКТИРОВАТЬ: вам нужно назвать свой URL. см. документы

  path('login', views.login,name='login')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...