[DJANGO] Problème de QuerySet et object
Bonjour.
En tant que débutant, je vous demande un peu de compréhension si ma question et mes erreurs sont simplistes...
Je suis confronté à un problème. Je souhaiterai tester si un champs d'un models est Vrai ou Faux dans le views.py
Voici les class concernés dans mon models.py:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Communaute(models.Model):
nom=models.CharField(max_length=50, verbose_name="Nom de la communauté", unique=True) #nom de la communauté
description=models.TextField(blank=True, verbose_name="Description")
TYPE_COMMUNAUTE=(
('PUBLIQUE','Publique'),
('PRIVEE','Privée'),
)
type_communaute=models.CharField(max_length=50, verbose_name="Type de la communauté", choices=TYPE_COMMUNAUTE)
inscriptionauto=models.BooleanField(default=False, verbose_name="Inscription automatique")
membres=models.ManyToManyField(User, through='Rejoindre', verbose_name="Communaute", null=True, blank=True)
def __unicode__(self):
return self.nom
class Rejoindre(models.Model):
createur = models.BooleanField(default=False, verbose_name="Créateur de la communaute")
date = models.DateTimeField(auto_now_add=True, auto_now=False,verbose_name="Rejoins depuis le:")
user = models.ForeignKey(User)
communaute=models.ForeignKey(Communaute)
postuler=models.BooleanField(default=False, verbose_name="La personne a t'elle postulée")
refuser=models.BooleanField(default=False, verbose_name="La personne est elle refusée")
def __unicode__(self):
return "Communauté: {0}".format(self.communaute.nom) |
Et voici mon fichier views.py (Attention, il n'est pas complet !)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| def details_communaute(request, id):
try:
communaute=Communaute.objects.get(id=id)
except Communaute.DoesNotExist:
raise Http404
messages=MessagePublic.objects.filter(communaute=communaute).order_by('-date')
masquer=True
inscrire=True
if communaute.type_communaute=="PUBLIQUE":
masquer=False
for membre in communaute.membres.all():
if membre==request.user:
inscrire=False
else:
for membre in communaute.membres.all():
if membre==request.user:
rejoindre=Rejoindre.objects.filter(user=membre,communaute=communaute)
if rejoindre.refuser==True :
inscrire=False
masquer=True
else:
masquer=False
inscire=False |
J'ai donc le message d'erreur suivant:
AttributeError at /communaute/num-4/
'QuerySet' object has no attribute 'refuser'
Request Method: GET
Request URL: http://localhost:8000/communaute/num-4/
Django Version: 1.5.4
Exception Type: AttributeError
Exception Value:
'QuerySet' object has no attribute 'refuser'
Python Version: 3.3.2
Après plusieurs tentatives en bidouillant le code, je n'arrive pas à régler le problème.
Ma question est donc plutôt simple, comment tester si le champs Rejoindre.refuser pour l'utilisateur connecté et la communauté sélectionnée est "vrai"?
Merci d'avance :)