Tengo dos modelos y necesito acceder a la propiedad de ambos.
modelos.py
class Product(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) product_title = models.CharField(max_length=255, default='product_title') product_description = models.CharField(max_length=255, default='product_description') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) is_active = models.BooleanField(default=True) product_view = models.IntegerField(default=0) def __str__(self): return self.product_title def get_absolute_url(self): return reverse('product_change', kwargs={'pk': self.pk}) class ProductImages(models.Model): product = models.ForeignKey(Product, on_delete=models.CASCADE) image_type = models.CharField(max_length=33,default='image_type') image_file = models.ImageField( upload_to='images/', null=True, blank=True, default='magickhat-profile.jpg' ) ProductImages es un modelo para almacenar múltiples imágenes.
vistas.py
class ProductListView(ListView): model = Product template_name = 'product_list.html'lista_productos.html
... {% for product in object_list %} <div class="product"> {% include 'label_perfil.html' %} {% include 'data_product.html' %} </div> {% endfor %} ...datos_producto.html
{% block data-product %} <img src="{{ product.image_file }}"/> {% endblock %} Todas las propiedades del modelo de Product están disponibles, pero ¿cómo se puede acceder a los datos de product.image_file ? Que regresan vacíos...
Django 3.2
Puede haber múltiples imágenes de productos para cada producto, por lo que no accede a un solo atributo de image_file de imagen del producto, recorre todas las imágenes de productos para ese producto y accede a las imágenes desde allí.
datos_producto.html
{% block data-product %} {% for image in product.productimages_set.all %} <img src="{{ image.image_file.url }}"/> {% endfor %} {% endblock %}