Вывод в шаблон Django из модели EAV
Я не могу понять, как вывести значение характеристик в шаблон из модели, где характеристики сравниваются со значениями. Я получил значение из таблицы Product, но как мне получить его из таблицы ProductProperty?
class Product(models.Model):
name = models.CharField(verbose_name='Наименование', max_length=128)
name_eng = models.CharField(verbose_name='Наименование (англ.)', max_length=128)
slug = models.SlugField(verbose_name='Слаг', max_length=128, unique=True, db_index=True, editable=False)
category = models.ForeignKey(verbose_name='Категория', to=Category, on_delete=models.CASCADE)
class Property(models.Model):
name = models.CharField(verbose_name='Наименование', max_length=128)
class ProductProperty(models.Model):
product = models.ForeignKey(verbose_name='Продукт', to=Product, on_delete=models.CASCADE)
property = models.ForeignKey(verbose_name='Характеристика', to=Property, on_delete=models.CASCADE)
value_string = models.CharField(verbose_name='Текстовое значение характеристики', max_length=250, null=True, blank=True)
value_integer = models.IntegerField(verbose_name='Числовое значение характеристики', null=True, blank=True)
value_genres = models.ManyToManyField(verbose_name='Жанры', to=Genre, null=True, blank=True)
Я пытался реализовать это через цикл for, но это не сработало
Чтобы отобразить значения характеристик из таблицы ProductProperty в шаблоне, необходимо передать соответствующие данные в контекст шаблона из представления. Этого можно добиться, запросив таблицу ProductProperty, относящуюся к конкретному товару, и передав эти данные в шаблон.
from django.shortcuts import render
from .models import Product, ProductProperty
def product_detail(request, product_id):
product = Product.objects.get(pk=product_id)
product_properties = ProductProperty.objects.filter(product=product)
return render(request, 'product_detail.html', {'product': product, 'product_properties': product_properties})