Можно ли в шаблоне Django отправить весь документ переменной в тег шаблона?
Если я создаю шаблон, используя этот документ:
{ "a": 1, "b": 2 }
В шаблонах Django я могу отобразить html, используя значение "a", следующим образом:
{{ a }}
Но можно ли отправить весь документ в тег шаблона? т.е. все это?
{ "a": 1, "b": 2 }
Чтобы мой тег мог обращаться к произвольным элементам?
Просто передайте ваш dict как строку или вы можете использовать json для этого.
Пример 1
def index(request):
my_dict = '{"a":1, "b":2}'
return render(request, "index.html", {'data':my_dict})
и внутри вашего шаблона просто сделайте вот так
{{data}} <!--- this will output actual dictionary eg. { "a": 1, "b": 2 } --->
Пример 2
import json
def index(request):
my_dict = json.dumps({"a":1, "b":2})
return render(request, "index.html", {'data':my_dict})
и внутри вашего шаблона просто сделайте вот так
{{data}} <!--- this will output actual dictionary eg. { "a": 1, "b": 2 } --->
В фреймворке django мы отправляем данные из view.py в шаблон, используя контекстный словарь. Общий формат для этого следующий:
использование представлений на основе функций.
def index(request):
return render(request, 'index.html',{'injectme':'this is context', 'inject_me':'this is next context'})
теперь в шаблоне вы можете получить доступ к этому как:
{{injectme}}
{{inject_me}}
использование представлений на основе классов
class abc(TemplateView):
def get_context_data(self,**kwargs): context=super().get_context_data(**kwargs) context['inject_me']='basic injection' context['injectme']='second injection' return context
теперь в шаблоне:
{{inject_me}}
{{injectme}}
надеюсь, ваша путаница рассеялась.