Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

many-to-many items in a template: check if any are not empty or none

Django beginner question. I have the following model:

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)

I make an instance of the model available in a template as 'leg'. In the template, I want to see if, for that instance, there are ANY associated drivers. I've tried {% if leg.drivers %} but that always seems to evaluate to True, regardless of whether there are any drivers or not for the leg.

How do I check to see if there are actually any drivers? Sorry for the basic question but I can't seem to figure it out.

like image 925
mb52089 Avatar asked Aug 26 '12 13:08

mb52089


1 Answers

{% if leg.drivers %} will always be true, because this will be a many to many manager. Try {% if leg.drivers.all %} to get all associated drivers.

like image 137
Jingo Avatar answered Sep 21 '22 14:09

Jingo