Bonjour à tous,

je débute sur Python et Django (en auto-formation) et je bloque sur une mise en forme.

J'ai une classe dans laquelle je veux définir une liste fixe. J'ai donc procédé selon ce que j'ai trouvé de la façon suivante dans le fichier models.py pour le champ "genre"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
class Personne(models.Model):
    GENRE = [('H','Homme'),('F','Femme')]
    nom = models.CharField(max_length=100)
    prenom = models.CharField(max_length=100, blank=True, null=True)
    dateNaissance = models.DateField(blank=True, null=True)
    genre = models.CharField(max_length=1, blank=True, null=True, choices=GENRE, default='Homme')
    coordonnees = models.OneToOneField(Coordonnees, on_delete=models.CASCADE, blank=True, null=True)
    adresse = models.OneToOneField(Adresse, on_delete=models.CASCADE, blank=True, null=True)
    onArchive = models.BooleanField(default=False, blank=True, null=True)
Je définis mes champs via le fichier forms.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
class PersonneForm(ModelForm):    
    class Meta:
        model = Personne
        fields = ['nom', 'prenom', 'genre', 'dateNaissance', 'coordonnees', 'onArchive']
        widgets = {
            'nom': TextInput(attrs={'class' : 'form-control'}),
            'prenom': TextInput(attrs={'class' : 'form-control'}),
            'dateNaissance': TextInput(attrs={'class' : 'form-control', 'type': 'date'}),
        }
Extrait de mon fichier html:
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
        <div class="col-md-6">
                    <div class="form-group">
                        <label>Prenom</label>
                        <div class="col-sm-9">
                            {{ form.prenom }}
                        </div>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-md-6">
                    <div class="form-group">
                        <label>Genre</label>
                        <div class="col-sm-9">
                            {{ form.genre }}
                        </div>
                    </div>
                </div>
Mon formulaire s'affiche bien, , mais je ne trouve pas comment spécifier l'attribut "form-control" pour le select. Du coup, ce champ n'est pas mis en forme. De plus, le champ onArchive, que je voudrais sous forme de checkbox, s'affiche comme un select.

Je crois que j'ai besoin d'un peu d'aide.

En vous remerciant pour vos retours.