提问者:小点点

在Django模板中加载特定的外键属性


德夫斯,

我有一个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。

所以我只想输出x1。

这些是我的模型:

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()



共1个答案

匿名用户

只需像模型中那样调用特定市场的字段。

 {% for market in markets %}  // or {% for object.market in markets %} 

  {% if market.market == object.market %}

 {{ market.fieldname }} 

  {% endif %}

{% endfor %}