14

Django初学者问题。我有以下模型:

class Leg(models.Model):
    startpoint = models.CharField(max_length=50, help_text="examples: 'Smith Elementary' or 'riders' houses'; less than 50 characters.")
    endpoint = models.CharField(max_length=50, help_text="examples: 'Smith Elementary' or 'riders' houses'; less than 50 characters.")
    riders = models.ManyToManyField(Rider, blank=True)
    drivers = models.ManyToManyField(Driver, blank=True)

我在模板中创建了一个模型实例作为“腿”。在模板中,我想看看是否有任何相关的驱动程序。我试过 {% if leg.drivers %} 但这似乎总是评估为 True,无论这条腿是否有任何驱动程序。

我如何检查是否真的有驱动程序?很抱歉这个基本问题,但我似乎无法弄清楚。

4

2 回答 2

17

{% if leg.drivers %}将永远是真的,因为这将是一个多对多的经理。尝试{% if leg.drivers.all %}获取所有相关的驱动程序。

于 2012-08-26T14:04:10.250 回答
1

for ... 空模板标签就是为此而生的。简单地循环 leg.drivers.all 并且如果你想在没有驱动程序的情况下显示一些消息,那么你可以在空子句中这样做。

于 2012-08-26T14:56:46.490 回答