2015-06-17 2 views
1

Я пытаюсь создать шаблон в Django. В этом шаблоне у меня есть: dato который содержит такой словарь {"Name":"Someone","Age":"23"} и propiedad который содержит такой словарь {"parameterName":"Name"}. Я могу сделать {{propiedad.parameterName}} и получить значение Name. После этого я хотел бы сохранить это значение в buffer (который до сих пор не существует), чтобы сделать позже {{dato.buffer}} получение Someone, которое я покажу в HTML. Я не знаю, как это сделать, может кто-нибудь мне помочь?Django, создавая переменные в шаблоне и присваивая значение

фрагмент кода:

<tbody> 
     {% for dato in atributo.datos %} 
     <tr> 
      {% for propiedad in atributo.propiedades %} 
      <td> 
      {# I would make the stuff here#} 
      {{ dato.buffer}} 
      </td> 
      {% endfor %} 
     </tr> 
     {% endfor %} 
</tbody> 

ответ

0

Этого можно достичь с помощью фильтров django. Но нам придется закодировать собственный собственный фильтр.

Включите это в воззрениях файл

from django.template.defaulttags import register 

@register.filter 
def get_item(dictionary, key): 
    return dictionary.get(key) 

В HTML файле вы можете добавить следующую строку. Мы передаем dictionary и key на get_item фильтр, который возвращает value ключа.

<td>{{ dato|get_item:propiedad }}</td> 
1

Если я получаю свой вопрос правильно, вы должны написать свой собственный пользовательский django template filter что-то вроде этого:

from django.template.defaulttags import register 
... 
@register.filter 
def getparam(dictionary, key): 
    return dictionary.get(key) 

и использовать это, чтобы получить его в ваш html:

{{ dato|getparam:propiedad }}