Есть вещи, которые многим из нас не очень нравятся в Django
Одна из них - каша из get_context_data:
class MyView(TemplateView):
template_name = 'my_view.html'
def get_context_data(self, **kwargs):
context = super(MyView, self).get_context_data(**kwargs)
context['foo'] = 'bar'
return context
для передачи параметра в контекст
Нигде не нашел в документации, но есть вот такое решение:
class MyView(TemplateView):
template_name = 'my_view.html'
foo = 'bar'
Из шаблона обращаться как:
{{ view.foo }}
Если необходимо генерировать результат каждый раз заново (не забываем как работают переменные класса), тогда делаем так:
class MyView(TemplateView):
template_name = 'my_view.html'
def ten(self):
return Article.objects.filter(active=True)
И очевидно что в шаблоне:
{{ view.ten}}
По идее, get_context_data вообще можно не юзать при таком подходе
Если что-то не так написал - прошу поправить.
А какие подобные хитрости знаете вы?
Updated 28 Jan. 2016, 1:33 by Artik.