Bonjour,
j'ai un problème depuis plusieurs heures et après de multiples recherches et tests infructueux, je m'en remet à vous.
J'ai des caméras, des dossiers contenant X caméras et X thèmes par dossiers (bref, c'est pas le sujet).
Mon formulaire affiche ma caméra, ainsi que les différents thème associés au dossier.
forms.py
1 2 3 4 5 6 7 8 9 10 11 12
| class CameraForm(forms.Form):
nomcam = forms.CharField (widget=forms.TextInput(attrs={'placeholder': 'Entrer le nom de la caméra', 'class':'form-control'}), label="Nom de la caméra")
def __init__ (self, *args, **kwargs):
iddossier = args[1]
initial = kwargs.get('initial', {})
kwargs['initial'] = initial
super(CameraForm, self).__init__(*args, **kwargs)
mytheme = SigTheme.objects.filter(iddossier=idadossier)
choice = []
for theme in mytheme:
choice.append((theme.idtheme,theme.nomtheme))
self.fields['theme'] = forms.MultipleChoiceField(widget=forms.SelectMultiple(attrs={'style':'width:100%;'}),choices=choice, required=False) |
J'instancie mon formulaire comme ceci :
views.py
cameraformedit = CameraForm(request.POST or None, iddossierencours, initial={'nomcam':'test'})
Mon objectif (simplifié ici), est de générer les champs du formulaire avec une valeur par défaut. Cela ne fonctionne pas du tout. J'ai essayé de tourner le problème dans tous les sens, dès que je rajoute un paramètre (ici, mon iddossier), l'attribut initial n'est plus fonctionnel.
Je vous remercie par avance pour votre aide !
Partager