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上只有一项。我的目标是显示参考市场。