2010-06-16 22 views
8

to raczej podstawowe pytanie (jestem nowy w Django), ale mam problem z użyciem zmiennej ustawionej w moim widoku wewnątrz mojego szablonu. Jeśli zainicjuję ciąg lub listę wewnątrz mojego widoku (tj. H = "cześć"), a następnie spróbuj wywołać go wewnątrz szablonu:
{{ h }}
nie ma wyjścia ani błędów. Podobnie, gdy próbuję użyć zmiennej wewnątrz mojego szablonu, który nie istnieje:
Używanie zmiennych widoku Django wewnątrz szablonów

{{ asdfdsadf }} 

istnieje jeszcze żaden błąd zgłaszane. Czy to normalne? I jak używać zmiennych w szablonach? Dzięki!

Odpowiedz

22

Aby uzyskać dostęp do zmiennej w szablonie, musi ona znajdować się w kontekście używanym do renderowania tego szablonu. Domyślam się, że nie przekazujesz słownika kontekstowego do szablonu podczas renderowania.

http://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response

„Słownika” określany jest słownik, który zawiera wszystkie zmienne, które mają być dostępne w kontekście. Na przykład:

return render_to_response('your_template.html', {'h': h}) 

ile idzie „nie błąd” błąd ... To jest ustawienie domyślne dla nieprawidłowej zmiennej szablonu. Możesz to zmienić w ustawieniach projektu, jeśli chcesz.

http://docs.djangoproject.com/en/dev/ref/settings/#template-string-if-invalid

3

Tak! To normalne. Takie błędy w szablonach kończą się bezgłośnie i jest to oczekiwane w Django.

do renderowania poprawnie szablonu korzystanie render_to_response('your_template.html', {'h':h}) (istnieje również przykry skrót render_to_response('your_template.html', locals()) jeśli słowniku kontekst jest bardzo duża)

tu pewne wyjaśnienie przykładów: http://www.djangobook.com/en/beta/chapter04/ (sekcja „Jak zmienne nieważne są obsługiwane”)

Powiązane problemy