【发布时间】:2021-04-02 14:05:49
【问题描述】:
开发人员,
我有 2 个模型,其中一个具有外键属性作为对另一个的引用。现在我正在尝试在我的模板中查看这两个对象。
class ItemDetailView(DetailView):
model = Item
template_name = "product.html"
def get_context_data(self, **kwargs):
context = super(ItemDetailView, self).get_context_data(**kwargs)
context['markets'] = Market.objects.all()
# And so on for more models
return context
在我的模板中,我只想要我的产品的确切市场
我尝试过这样的事情:
{% for market in markets %} // or {% for object.market in markets %}
{% if market.market == object.market %}
>> Do smth if conditions match <<
{% endif %}
{% endfor %}
在循环中,我得到像 x1、x2、x3 和 object.market 这样的字符串,其值为 x1。
所以我只想输出对应市场的对象。 但如果我检查 {% if market.market == object.market %} 条件不知何故不匹配。当我在循环内将它们打印出来时,我得到 x1,x2,x3,... 用于 market.market 和 x1,x1,x1,... 用于 object.market
这些是我的模型:
class Market(models.Model):
market = models.CharField(max_length=30)
branch = models.CharField(choices=BRANCH_CHOICES, max_length=1)
image = models.ImageField(blank=True)
slug = models.SlugField(blank=True)
def __str__(self):
return self.market
def get_absolute_url(self):
return reverse("core:market-product-list", kwargs={
'slug': self.slug
})
class Item(models.Model):
title = models.CharField(max_length=100)
market = models.ForeignKey(Market, related_name='children', on_delete=models.CASCADE, blank=True, null=True)
price = models.FloatField()
discount_price = models.FloatField(blank=True, null=True)
category = models.ForeignKey(ItemCategory, related_name='children', on_delete=models.CASCADE, blank=True, null=True)
label = models.CharField(choices=LABEL_CHOICES, max_length=1)
slug = models.SlugField()
path = models.CharField(default='/market-product-list/', max_length=100)
description = models.TextField()
image = models.ImageField()
【问题讨论】:
-
请提供型号。
标签: html django for-loop templates