Структура Django с каталогами не загружает представления

#python #django

Вопрос:

Я исхожу из личинок на Джанго, и у меня есть проблема с этой стороны, и я не могу сказать на 100% из документации, что я точно понимаю структуру. Должен ли я, например, создавать каталог для каждой части приложения? Например, для пользователя специальный каталог, для управления приложением другой и так далее? Или у меня может быть основное приложение, как у acm, и в нем есть представление папок с несколькими views.py и импортировать их в URL-адреса? Поскольку я не могу этого сделать, я получаю ошибку.

Например, это моя структура структура

В этом и заключается ошибка AttributeError: module 'main.views' has no attribute 'pages_views'

Функция Url из главной

 from django.contrib import admin
from django.urls import path
from django.urls import include
from rest_framework_jwt.views import obtain_jwt_token
from . import views

urlpatterns = [
    path('', views.pages_views.index, name='index'),
]

 
 AttributeError: module 'main.views' has no attribute 'pages_views'
 

И доступ к URL-адресам из project_management (я думаю, основное приложение)

 from django.contrib import admin
from django.urls import path
from django.urls import include
from rest_framework_jwt.views import obtain_jwt_token
from . import views

urlpatterns = [
    path('', include('main.urls')),
    path('admin/', admin.site.urls)
]
 

Комментарии:

1. Можете ли вы показать содержимое вашего main/views.py ?

Ответ №1:

Похоже, у вас есть проблема в вашей структуре. У вас должно быть что-то вроде этого: Сначала в URL-адресах вашего проекта.

 from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('accounts/', include('accounts.urls')),
    path('admin/', admin.site.urls),
 

accounts.urls перенаправляет запрос в приложение. В каждой папке приложения вы создаете «urls.py» папка со следующей структурой:

 from django.urls import path, include
from django.contrib.auth import views as auth_views
from . import views as views

app_name="accounts"

urlpatterns = [
    path('new_user/', views.UserRegistrationView.as_view(), name="new_user"),
    path('change_password/', views.change_password, name='change_password'),
] 
 

app_name это помогает URL-адресам в корневом каталоге выбрать правильное приложение.
Либо, чтобы упростить задачу, ваш index вид должен быть расположен непосредственно в views.py.
Если вы действительно хотите разделить проблемы, вы можете создать приложение, которое будет использоваться для представлений общего назначения.