Форум сайта python.su
Elaphe
Знаете в чем главное преимущество CBV перед функциями? В том, что классы можно наследовать.
На функциях вы любо будете дублировать код, либо наплодите кучу непонятных функций-помощников, которые сами по себе представлениями не являются и выглядят тупо и инородно и непонятно зачем. Вместо этого вы один раз делаете базовый класс и далее его наследуете и у наследников уже есть весь необходимый функционал.
class MyView(View): def dispatch(self, request, *args, **kwargs): # data - Dict to collect request parameters self.data = json.loads(self.request.body or '{}') return super(MyView, self).dispatch(request, *args, **kwargs) def resp(self, data): from django.http import JsonResponse return JsonResponse(data) class SomeView(MyView): def get(self, request): self.data # чего-то делаем с уже подготовленными данными return self.resp()
Офлайн
Я ничего не имею против классов.
Я просто не вижу смысла наследовать свой класс от встроенных в Django CBV
Офлайн