2014-02-20 2 views
1

Я пытаюсь написать простое представление Django, которое выводит таблицу, представляющую все поля в модели.Django - Использовать тег шаблона в теге шаблона?

У меня есть модель под названием Menu_Items, с 6 полями:

Item_Id 
Name 
Description 
Base_Price 
Image_Path 
Item_Tags 

Использование Menu_Items._meta.fields я могу получить список полей.

Для заданного набора запросов (например, Menu_Items.objects.all()) Я хотел бы распечатать все поля, отформатированные как таблица.

Я пробовал передавать поля в контексте, но я не могу понять, какой шаблон тега использовать. Можно ли использовать тег шаблона внутри тега шаблона? как так:

{% for field in fields %} 
    {{ menuItems.0.{{ field.name }} }} 
    {{ field.name }} 
{% endfor %} 

В этом случае, поле каждого из полей, возвращенных Menu_Items._meta.fields

ответ

3

Вместо того, чтобы сделать это, изменить свой запрос так, он возвращает ValueQuerySet с values().

Ваш результат будет список словарей, вот пример из документации:

>>> Blog.objects.filter(name__startswith='Beatles').values() 
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}] 

Теперь в шаблоне:

{% for item in results %} 
    {% for column,value in item.iteritems %} 
     {{ column }} {{ value }} 
    {% endfor %} 
{% endfor %} 

Это приведет:

id 1 
name Beatles Blog 
tagline All the latest Beatles news. 
+1

Это сработало отлично, с небольшим изменением. Я использовал «iteritems» вместо «itervalues». Спасибо огромное! Мой окончательный код: '{% результата в результатах%} \t {% для поля, значение result.iteritems%} \t \t {{поле}}: {{значение}}
\t {% endfor%} {% endfor%} ' – corycorycory

Смежные вопросы