Bonjour!
Je suis confronté à un problème dans mon utilisation de Django.
Je souhaiterai dans mes templates faire des tests et vérifier si des variables sont égales ou égales à des chaînes de caractères. Voici un exemple que j'utilise pour un site web. J'ai une BDD avec des utilisateurs, une autre avec des communautés. Ces deux bases sont liées entre elles via une troisième appelée Rejoindre. Dans celle-ci je stocke différentes données qui me permettent d'avoir des informations sur l'utilisateur et la communauté.
Mon fichier models.py:
Je souhaiterai afficher un tableau avec l'ensemble des communautés existantes en indiquant différentes informations, dont le nom du créateur. Le champs Rejoindre.createur est à True pour le user qui est le créateur. J'espère que c'est assez clair... Pour la partie templates, la voici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 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 bien sur, ça merde... Tout le tableau fonctionne, sauf la colonne créateur (j'ai tester sans mettre le if avec createur=True).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <tr> <th>Nom de la communauté</th> <th>Type</th> <th>Nombre de membre</th> <th>Créateur</th> </tr> {% for communaute in communautes %} <tr> <td><a id="lien_site" href="/communaute/num-{{communaute.id}}">{{ communaute.nom }}</a></td> <td>{{communaute.type_communaute}}</td> <td>{{communaute.membres.all|length}} membre{{ communaute.membres.all|pluralize }}</td> <td> {% for membre in communaute.membres.all %} {% if membre.rejoindre.createur=True %} {{membres.username}} {% endif %} {% endfor %} </td> </tr> {% endfor %} </table>
Pour vous aider je mets le message d'erreur que j'ai :
TemplateSyntaxError at /communaute/chercher-communaute/
Could not parse the remainder: '=True' from 'membre.rejoindre.createur=True'
Merci pour votre aide !
Partager