Я хочу отобразить продукты в шаблоне Campaign DetailView.
В моем проекте в каждой кампании есть магазин, в котором есть товары, поэтому поток выглядит так:
Кампания -> Магазин -> Продукты
Campaign models.py
class Campaign(models.Model):
team = models.OneToOneField(Team, related_name='campaigns', on_delete=models.CASCADE, null=True, blank=True)
shop = models.OneToOneField(shop_models.Shop, on_delete=models.CASCADE, null=True, blank=True)
Магазин models.py
class Product(models.Model):
title = models.CharField(max_length=100)
description = models.CharField(max_length=700, null=True, blank=True)
price = models.DecimalField(max_digits=10, decimal_places=0)
class Shop(models.Model):
product = models.OneToOneField(Product, related_name='shop_product', on_delete=models.CASCADE, null=True, blank=True)
product2 = models.OneToOneField(Product, related_name='shop_product2', on_delete=models.CASCADE, null=True, blank=True)
product3 = models.OneToOneField(Product, related_name='shop_product3', on_delete=models.CASCADE, null=True, blank=True)
DetailView
class CampaignDetail(DetailView):
model = Campaign
form_class = CampaignForm
pk_url_kwarg = 'pk'
context_object_name = 'object'
template_name = 'campaign_detail.html'
Template
{% for item in obj.shop_set.all %}
<div class="plan">
<a href="">
<h4>{{ item.title }}</h4>
<h5>{{ item.price }}</h5>
<img src="{{ item.image.url }}" alt="">
</a>
</div>
Поля в шаблоне оказались пустыми.
Любая помощь будет оценена.