Форум сайта python.su
Привет.
Есть модель:
class Blahblah(models.Model): name1 = models.CharField(blank=True) name2 = models.CharField(blank=True) name3 = models.CharField(blank=True) name4 = models.CharField(blank=True) describe = models.TextField(blank=True) stack = models.IntegerField(blank=True, null=True) # и ещё штук 10 разнообразного типа полей.
# Нужны все поля модели. to_template = Blahblah.objects.all() # Отдаю на рендер в шаблон. return render(request, 'mytemplate.html', {'to_template': to_template})
{% if to_template.name1 %} <h5>Name1:</h5> <p>{{ to_template.name1|safe }}</p> <hr/> {% endif %} {% if to_template.name2 %} <h5>Name2:</h5> <p>{{ to_template.name2|safe }}</p> <hr/> {% endif %} {% if to_template.name3 %} <h5>Name3:</h5> <p>{{ to_template.name3|safe }}</p> <hr/> {% endif %} {% if to_template.name4 %} <h5>Name4:</h5> <p>{{ to_template.name4|safe }}</p> <hr/> {% endif %} {% if to_template.describe %} <h5>Describe</h5> <p>{{ to_template.describe|safe }}</p> <hr/> {% endif %} {% if to_template.stack %} <h5>Stack</h5> <p>{{ to_template.stack|safe }}</p> <hr/> {% endif %}
Отредактировано MikaMika (Апрель 10, 2013 08:37:49)
Офлайн
Выбрать в values_list или values, пройтись циклом, отфильтровать все пустое, передать в шаблон. В шаблоне сделать цикл и template filter, принимающий число и словарь и возвращающий значение по ключХ.
Офлайн
Спасибо!
Немного не понял, а зачем это:
FishHookРаз мы уже во вьюхе отфильтровали всё пустое и непустое передали в шаблон.
В шаблоне сделать цикл и template filter, принимающий число и словарь и возвращающий значение по ключХ.
Отредактировано MikaMika (Апрель 10, 2013 09:50:24)
Офлайн
>>> Немного не понял, а зачем это
Я неверно выразился, это альтернативное решение
Офлайн
FishHook, спасибо.
Появилась проблема.
Мой запрос во вьюхе:
q = Blahblah.objects.filter(name1='blahblah').\ order_by('lalala__name').\ select_related('fk1', 'fk2').\ prefetch_related('fk1__source', 'fk2__target')
q.values()
Офлайн
Пока придумал обходить поля объекта так:
q = Blahblah.objects.filter(name1='blahblah').\ order_by('lalala__name').\ select_related('fk1', 'fk2').\ prefetch_related('fk1__source', 'fk2__target') for key, value in q.__dict__.items(): print key + '//' + value
Офлайн
а зачем select_related если делаешь values? В этом случае в нем нет смысла, т.к. твой запрос превращается в список и дальнейшее обращение к нему, как к объекту QuerySet неактуально.
Офлайн