J'ai écrit un champ personnalisé de type MultipleChoiceField. Tout fonctionne correctement, mais lorsque je soumets le formulaire, les valeurs sélectionnées reviennent aux choix initiaux, même si le formulaire se valide correctement.
mon code ressemble à ceci :
class ProgrammeField(forms.MultipleChoiceField):
widget = widgets.SelectMultiple
class ProgrammeForm(forms.Form):
programmes = ProgrammeField(required=False)
def __init__(self, user, *args, **kwargs):
self.fields['programmes'].choices = Mymodel.objects.all()
self.fields['programmes'].initial = Mymodel.objects.filter(created=user)
view.py
if request.method == 'POST':
form = ProgrammeForm(user=request.user, data=request.POST)
if form.is_valid():
form.save()
form = ProgrammeForm(request.user)
return render_to_response(form.html', {'form': form })
Je n'ai pas inclus tous les autres champs, etc., mais c'est essentiellement le code qui me pose problème. Je ne sais pas si vous avez une idée sur la façon d'afficher les nouvelles valeurs après que le formulaire a été soumis ou pourquoi il revient aux valeurs initiales.
Remerciements