je le modèle suivant avec un champ m2m où les utilisateurs enregistrés peuvent intéresser à une publication:Vérifiez si l'utilisateur est dans le domaine Many2Many
models.py
from django.db import models
class Publication:
title = models.CharField(max_lenth=512)
users_interested = models.ManyToManyField(User)
views.py
from django.shortcuts import render
from django.views import View
from .models import Publication
class listPublicationView(View):
def get(self, request, *args, **kwargs):
publications = Publication.objects.all()
return render(request, "base.html", {'publications': publications})
maintenant, j'essaie de produire un « Je suis déjà intéressé » dans le modèle lorsqu'un connecté l'utilisateur est déjà intéressé par la publication:
base.html
{% for publication in publications %}
{{publication.title}}
{% if currently logged in User is interested in publication (check users_interested) %}
i am already interested
{% endif %}
{% endfor %}
Je pense à quelque chose comme ceci:
{% if user.id in publication.users_interested__id %}
Vous devez charger les informations que vous voulez dans votre vue. Le template n'est pas là pour produire quoi que ce soit (mais html, ofc). Dans votre cas, probablement une forme de 'prefetch_related()' ou 'annotate()'. – spectras