django формирует MultipleChoiceField возвращается к исходному значению при сохранении - PullRequest
3 голосов
/ 11 марта 2010

Я написал собственный MultipleChoiceField. У меня все работает нормально, но когда я отправляю форму, выбранные значения возвращаются к исходным вариантам, хотя форма проверяется нормально.

мой код выглядит примерно так:

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 }) 

Я не включил все остальные поля и т. Д., Но в основном это код, с которым у меня проблемы. У любого есть идеи, как заставить его отображать новые значения после отправки формы или почему она возвращается к исходным значениям

Спасибо

1 Ответ

3 голосов
/ 11 марта 2010

Вы всегда возвращаете несвязанный экземпляр формы, попробуйте это:

view.py

if request.method == 'POST':
    form = ProgrammeForm(user=request.user, data=request.POST)
    if form.is_valid():
        form.save()
else: ##this is the changge
    form = ProgrammeForm(request.user)
return render_to_response('form.html', {'form': form }) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...