Один проект django два приложения, проблема с общими представлениями (class view)
У меня есть два приложения в одном проекте: магазин и корзина.
В urls.py в ядре проекта:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('jewelry_store.urls', namespace='jewelry_store')),
path('basket/', include('basket.urls', namespace='basket')),
]
in urls.py in basket app :
from django.urls import path
from basket import views
app_name = 'basket'
urlpatterns = [
path('', views.BasketSummary.as_view(), name='basket_summary')
]
in urls.py in jewelry_store app :
from django.urls import path
from jewelry_store.models import Category
from . import views
app_name = 'jewelry_store'
urlpatterns = [
path('', views.AllListView.as_view(), name='all_products'),
path('<slug:slug>', views.ProductView.as_view(), name='product_detail'),
path('category/<slug:slug>/', views.CategoryView.as_view(), name='all_categories'),
path('collection/<slug:slug>/', views.CollectionView.as_view(), name='all_collections'),
]
Я хотел бы иметь представление на основе классов в файле views.py, например так :
from msilib.schema import ListView
from django.shortcuts import render
import basket
from jewelry_store.models import Product
# Create your here.
class BasketSummary(ListView):
model = Product
template_name = "jewelry_store/basket/summary.html"
но он выдает ошибку следующего вида
когда это делается в режиме функций, все правильно. Какова правильная конфигурация для представлений классов?
попробуйте это:
class BasketSummary(ListView):
model = Product
template_name = "basket/summary.html"
вместо этого:
class BasketSummary(ListView):
model = Product
template_name = "jewelry_store/basket/summary.html"
Импортировать ListView из модуля django generic view.
В верхней части вашего файла views.py измените эту строку
from msilib.schema import ListView
To
from django.views.generic
