嘿!
我有一个多列的表视图,其中一列包含来自模型的m2m字段。我不希望所有的值(如果多个值/条目是给定的m2m)只有最高的。
示例:
- 1890个糖果
- 30个糖果
- 300000个糖果
我只想显示该单元格中的300000个糖果,而不是所有3个值。
{% for candymarket in mall %}
<td>
{% for bon in candymarket.bonbon_color.all %}
{{bon.value}} | {{bon.color}}
{% endfor %}
</td>
{% endfor %}
如何在模板内部进行过滤?我仍然希望能够在详细视图中获取所有值。
是否有类似{% if bon.value|length > 200 %}
的东西只与is max一起使用?
任何帮助或链接到一个文档是赞赏!:)
class CandyMarket(models.Model):
name = models.CharField(
max_length = 500,
unique = True
)
bonbon= models.ManyToManyField(
Bon,
verbose_name = "BON",
through = "BonForCandyMarket",
blank = True,
related_name = "bonbon_in_market"
)
class BonForCandyMarket(models.Model):
market= models.ForeignKey(
Candymarket,
on_delete = models.PROTECT,
related_name = "bonbon_color"
)
bon= models.ForeignKey(
Bon,
on_delete = models.PROTECT,
related_name = "market_with_bonbon"
)
value= models.PositiveSmallIntegerField(
blank=True,
null=True
)
class Bon(models.Model):
description_english = models.CharField(
max_length = 500,
unique = True
)
2条答案
按热度按时间nbysray51#
您可以尝试
last
内置并在
BonForCandyMarket
型号Meta
中设置默认顺序6tdlim6h2#
一般情况下,最好不要在
template
内部处理此类操作。如果是查询相关的数据,那么尽量在view
中保留尽可能多的数据。在模板文件中,逻辑应仅用于渲染组件。可以将
aggregate
数据转换为您的查询。在这种情况下称为annotation
(即每个对象的聚合):views.py
candy_mall.html