@stayHARD

Как объединить два цикла for?

Добрый вечер.
Я сейчас пытаюсь разобраться с Django (1.8.2).
Пишу небольшое подобие интернет-магазина. Сейчас пробую вывести атрибут товара и его значение. Они у меня лежат в отдельных таблицах согласно EAV.
Мои views:
def macbook_view_by_id(request, macbook_id):
	characteristics = ItemAttribute.objects.filter(category=3)
	values = ItemAttributeValue.objects.filter(product=macbook_id)
	return render(request, 'macbook_page.html', \
		{'characteristics': characteristics,'values': values, 'nbar': 'macbook'})

После этого я хочу получить характеристики в виде:
характеристика:значения
характеристика:значения
....
характеристика:значения

Но получаю естественно вот такое:
характеристика
характеристика
...
характеристика

и еще вот такое:
значение
значение
...
значение

В гугле нашел одно решение, используя zip:
{% for i, j in zipped_data %}
    {{ i }}, {{ j }}
{% endfor %}

но к сожалению выдает не то, что нужно (показывает объекты).
Что делать в таких случаях?
  • Вопрос задан
  • 1237 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ATNC
Full-stack web\python developer
вы можете получить объекты, которые "привязаны" к вашей модели добавив related_name.
Например:

models.py
class ItemAttributeValue(models.Model):
    att1 = .....
    att2 = .....
    item = models.ForeignKey(ItemAttribute, related_name='attribute')


views.py
characteristics = ItemAttribute.objects.get(category=3)


index.html
{% for i in characteristics %}
{{ i.name}}
...
{{ i.attribute.att1}}
...
{% endfor %}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы