/
eb
/
django_pycoding_shop
Обзор
Документация
Войти
/
eb
/
django_pycoding_shop
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
mainapp/views.py
40 строк
1 KB
EvgeniyBudaev
mixins
31 май 2021, 20:25
31 май 2021, 20:25
8e29efe
Код
Авторство
О чём код?
from django.shortcuts import render from django.views.generic import DetailView, View from .mixins import CategoryDetailMixin from .models import Notebook, Smartphone, Category # def test_view(request): # categories = Category.objects.get_categories_for_left_sidebar() # return render(request, 'base.html', {'categories': categories}) class BaseView(View): def get(self, request, *args, **kwargs): categories = Category.objects.get_categories_for_left_sidebar() return render(request, 'base.html', {'categories': categories}) class ProductDetailView(CategoryDetailMixin, DetailView): CT_MODEL_MODEL_CLASS = { 'notebook': Notebook, 'smartphone': Smartphone } def dispatch(self, request, *args, **kwargs): self.model = self.CT_MODEL_MODEL_CLASS[kwargs['ct_model']] self.queryset = self.model._base_manager.all() return super().dispatch(request, *args, **kwargs) context_object_name = 'product' template_name = 'product_detail.html' slug_url_kwarg = 'slug' class CategoryDetailView(CategoryDetailMixin, DetailView): model = Category queryset = Category.objects.all() context_object_name = 'category' template_name = 'category_detail.html' slug_url_kwarg = 'slug'