模板中的多对多项:检查是否有空或无

mb5*_*089 11 django django-templates django-models django-template-filters

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)
Run Code Online (Sandbox Code Playgroud)

我将模板中的模型实例设为'leg'.在模板中,我想看看,对于那个实例,是否有任何关联的驱动程序.我已经尝试了{%if leg.drivers%},但总是似乎评估为True,无论腿部是否有任何驱动程序.

如何查看是否有任何驱动程序?对不起基本问题,但我似乎无法弄清楚.

Jin*_*ngo 12

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

  • 如果不使用驱动程序对象,那么执行`leg.drivers.count`会更有效率. (2认同)