В чем разница между extra_context и get_context_data (** kwargs) в CBV Django - PullRequest
0 голосов
/ 04 ноября 2019

Я использую Django CBV и запутался в различиях между extra_context атрибутом класса и get_context_data(**kwargs) методом. Хотя в соответствии с документами вы можете использовать оба, но какой из них лучше использовать?

Может кто-нибудь помочь мне решить проблему ???

Я использую этот атрибут класса в подклассе DetailView, и он работает.

Версия Django 2.2.

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2019

Они оба выполняют одинаковую функциональность, за исключением того, что в get_context_data, чтобы получить предыдущие данные, вы должны позвонить super и обновить этот дикт;потому что вы не хотите потерять предыдущие данные в контексте.

Но extra_context будет делать то же самое, но не нужно вызывать super, и вы можете вызывать его в URL, как TemplateView.as_view(extra_context={'title': 'Custom Title'}).

Итак, подведем итог: extra_context - это просто быстрее с меньшим количеством кода для обновления ваших контекстных данных в CBV.
Также note , extra_context будет использоваться какатрибут, но get_context_data является методом для CBV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...