Poprzedni wpis (Introducing django-confirmation) | Następny wpis (It's 25, baby!)
Eureka!
Pomimo tego, że robię w Django od paru lat, wciąż zdarzają mi się odkrycia na miarę archimedejskiej eureki. Dziś właśnie zauważyłem, że skrót render_to_response może przyjmować jako pierwszy argument nie tylko nazwę szablonu, ale także listę nazw szablonów. Dzięki temu wiekopomnemu odkryciu kod, który wyglądał dość marnie:
templates = [
'flagging/%s_flagging_form.html' % obj._meta.module_name,
'flagging/flagging_form.html',
]
template = loader.select_template(templates)
return HttpResponse(template.render(ctx))
teraz może wyglądać trochę ładniej:
templates = [
'flagging/%s_flagging_form.html' % obj._meta.module_name,
'flagging/flagging_form.html',
]
return render_to_response(templates, ctx)
Świadomie używam określeń ładnie i brzydko, bo chodzi tu jedynie o estetykę (obydwa warianty robią dokładnie to samo pod spodem).
Na swoje usprawiedliwienie mogę powiedzieć tylko tyle, że takie zachowanie render_to_response jest obecnie nieudokumentowane (ale zgłosiłem odpowiedniego patcha).
Etykiety: django free software / open source programowanie python
Komentarze (2)
#2 jarek skomentował(-a) 28 listopada 2008 o 09:31
Widzisz, być może... Ale w dokumentacji Django tego nie ma, a jak dla mnie to jest autorytatywne źródło informacji.
Skomentujesz?
* oznacza pole wymagane



#1 Secator skomentował(-a) 27 listopada 2008 o 22:49
Powiedziałbym że to jest w DjangoBooku w jednym z pierwszych 3 rozdziałów (nie licząć wstępu), ale nie będe cie denerwował :):) :P