2010-03-17 13 views
12

Próbuję renderować szablon django z bazy danych poza normalną strukturą żądanie-odpowiedź djangos. Wydaje się jednak, że nie jest to trywialne ze względu na sposób kompilowania szablonów django. Chcę zrobić coś takiego:Załaduj szablon django z bazy danych

>>> s = Template.objects.get(pk = 123).content 
>>> some_method_to_render(s, {'a' : 123, 'b' : 456}) 
>>> ... the rendered output here ... 

Jak to zrobić?

+0

Zastanawiam się, w jaki sposób będziesz aktualizować swoje szablony? Będziesz łamał strukturę modelu MVC/T django – gath

Odpowiedz

30

Nie ma w tym nic skomplikowanego i nie ma to nic wspólnego ze strukturą żądania/odpowiedzi. Wszystko, co musisz zrobić, to przekazać ciąg szablonu do konstruktora django.template.Template (BTW, mam zmienił nazwę modelu, aby uniknąć nieporozumień):

from django.template import Context, Template 
from myapp.models import DbTemplate 

s = DbTemplate.objects.get(pk=123).content 
tpl = Template(s) 
tpl.render(Context(dict(a=123, b=456))) 
+0

Druga linia powinna brzmieć "tpl = Szablon (y)" –

+0

@Brian dzięki, zmieniona. –

+0

Doskonale dziękuję. –

Powiązane problemy