我编写了一个自定义 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 })
我没有包含所有其他字段等,但这基本上是我遇到问题的代码。任何人都知道如何让它在提交表单后显示新值或者为什么它会返回原始值
Thanks
您总是传回表单的未绑定实例,请尝试以下操作:
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 })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)