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

Html 在Django模板中加载特定的外键属性,html,django,for-loop,templates,Html,Django,For Loop,Templates,开发人员 我有两个模型,其中一个模型有一个外键属性作为对另一个模型的引用。现在我尝试在模板中查看这两个对象 class ItemDetailView(DetailView): model = Item template_name = "product.html" def get_context_data(self, **kwargs): context = super(ItemDetailView, self).get_context

开发人员

我有两个模型,其中一个模型有一个外键属性作为对另一个模型的引用。现在我尝试在模板中查看这两个对象

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 %}

只需调用模型中特定市场的字段

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

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

 {{ market.fieldname }} 

  {% endif %}

{% endfor %}

为什么不循环查看产品(项目)对象?

我刚刚解决了这个问题。问题是object.market被解释为一个对象,而不是字符串。因此,不可能检查if条款中的条件。通过将对象转换为如下字符串,我成功地输出了相应的市场:

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

     >> Do smth if conditions match << 

      {% endif %}

    {% endfor %}
首先:
{%if object.market | slagify | capfirst==market.market%}
然后改成了简单的
{%if object.market==market%}
这显然是更好的解决方案


PS:我还了解到,这是一个糟糕的编程,我不应该在模板中过滤,但我对Django是新手,我很高兴现在一切正常:)

请给我模型。这对我不起作用,因为market.market的输出是x1,x2,object.market的输出是x1,x1,我在那个DetailView上只有一项。我的目标是显示参考市场。