Bonsoir/Bonjour
Je suis confronté à une problématique et à quelques questions sur les formulaires et les listes de choix.
J'utilise plusieurs models dans une applications, le premier tournois/models.py:
Le second parier/models.py :
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 class Tournois(models.Model): nom=models.CharField(max_length=100, verbose_name="Nom du Tournois") date=models.DateTimeField(auto_now_add=True, auto_now=False,\ verbose_name="Créé le:") description=models.TextField(blank=True) en_ligne=models.BooleanField(default=False, verbose_name="Mettre en ligne le") communaute=models.ForeignKey(Communaute, verbose_name="Nom de la communauté") evenement=models.ManyToManyField(Evenement, through='JournalEvenement',\ verbose_name="Evènement du tournois") participants=models.ManyToManyField(User, through='JournalParticipant',\ verbose_name="Participants", blank=True) def __unicode__(self): return self.nom
Je souhaiterai créer un formulaire pour que les utilisateurs puissent créer un tournois. Les utilisateurs peuvent ensuite choisir des événements pour le tournois et inviter des participants. Je souhaiterai afficher QUE les événements qui n'ont pas encore commencés, c'est à dire que la date de début (evenement.date_debut) est supérieur au moment d'affichage du formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class Evenement(models.Model): nom=models.CharField(max_length=100, verbose_name="Nom de l'évènement") date_debut=models.DateTimeField(auto_now_add=False, auto_now=False, verbose_name="Date de début de l'évènement") date_fin=models.DateTimeField(auto_now_add=False, auto_now=False,verbose_name="Date de fin de l'évènement") clos=models.BooleanField(default=False, verbose_name="Evènement clos=gagnant connu (cocher pour OUI)") egalite=models.BooleanField(default=False, verbose_name="Possibilité d'égalité (cocher pour OUI)") competition=models.ForeignKey(Competition, verbose_name="Competition concernée") competiteurs=models.ManyToManyField(Competiteur, verbose_name="Compétiteurs engagés") def __unicode__(self): return self.nom
Malheureusement mon fichier tournois/forms.py me retourne l'ensemble des événement et je ne sais pas comment filtrer mes événements sur des critères précis.
Même chose pour les participants, je souhaiterai afficher que les utilisateurs qui sont dans la communauté du tournois (le champs communaute dans le fichier tournois/models.py)
Mon fichier forms.py:
Auriez-vous quelques pistes pour ce problème que je risque de croiser de nombreuses fois ? ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class TournoisCreerForm(forms.ModelForm): nom=forms.CharField(max_length=100, label="Nom du tournois") description=forms.CharField(widget=forms.Textarea, label="Descriptif du tournois") en_ligne=forms.BooleanField(label="Mettre en ligne le tournois") class Meta: model=Tournois exclude=('date',)
J'utilise window seven, django 1.5 et python 3.3
Partager