#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.
Если вы действительно хотите разделить проблемы, вы можете создать приложение, которое будет использоваться для представлений общего назначения.