【发布时间】:2019-06-01 20:10:22
【问题描述】:
我想在 Campaign DetailView 模板中显示产品。
在我的项目中,每个广告系列都有一个包含产品的商店,所以流程就像,
活动 --> 商店 --> 产品
广告系列模型.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)
详细视图
class CampaignDetail(DetailView):
model = Campaign
form_class = CampaignForm
pk_url_kwarg = 'pk'
context_object_name = 'object'
template_name = 'campaign_detail.html'
模板
{% 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>
模板中的字段为空。 任何帮助将不胜感激。
【问题讨论】:
-
您可以为您的视图添加此模板的代码吗?
-
在您看来,查询集中可能需要
prefetch_related('shop_set')。你能在view.py中显示代码吗? -
问题已更新。
标签: django python-3.x django-models django-templates