All articles, tagged with “astuces”

Django : Vérifier l’existence d’un objet dans un QuerySet via les templatetags

Récemment je me suis demandé comment, à partir d’un template, vérifier si un objet se trouve dans un QuerySet. Mon but étant d’afficher quelques lignes spécifiques dans l’hypothèse où c’est bien le cas.

Partant des modèles author et book suivants :

class Author(models):
    name = models.CharField(max_length=255)

class Book(models):
    title = models.CharField(max_length=255)
    authors = models.ManyToManyField(Author, related_name="books_related")

On en déduit qu’un auteur peut écrire plusieurs livres et un livre peut être écrit par plusieurs auteurs. Si l’on souhaite s’assurer que my_author est bien l’un des auteurs de my_book, voici comment procéder :

{% ifequal my_author.books_related.get my_book %}
…
{% endifequal %}

C’est aussi simple que cela ! En espérant que cette astuce vous sera utile ;)

UPDATE : je me dois de préciser que cela ne fonctionne que si my_author n’a écrit qu’un seul livre. Eh oui, petite erreur de jeunesse, je vous promet de vérifier plus en détail lorsque je proposerai une astuce à l’avenir !