【发布时间】:2009-08-13 22:35:35
【问题描述】:
我正在使用 django 构建我的第一个表单,并且我看到了一些我真的没想到的行为。我定义了一个表单类:
class AssignmentFilterForm(forms.Form):
filters = []
filter = forms.ChoiceField()
def __init__(self, *args, **kwargs):
super(forms.Form, self).__init__(*args, **kwargs)
self.filters.append(PatientFilter('All'))
self.filters.append(PatientFilter('Assigned', 'service__isnull', False))
self.filters.append(PatientFilter('Unassigned', 'service__isnull', True))
for i, f in enumerate(self.filters):
self.fields["filter"].choices.append((i, f.name))
当我使用以下方法将此表单输出到模板时:
{{ form.as_p }}
我看到了正确的选择。但是,刷新页面后,我在选择框中看到了 3 次列表。再次点击刷新会导致列表在选择框中显示 10 次!
这是我的看法:
@login_required
def assign_test(request):
pg = PhysicianGroup.objects.get(pk=physician_group)
if request.method == 'POST':
form = AssignmentFilterForm(request.POST)
if form.is_valid():
yes = False
else:
form = AssignmentFilterForm()
patients = pg.allPatients().order_by('bed__room__unit', 'bed__room__order', 'bed__order' )
return render_to_response('hospitalists/assign_test.html', RequestContext(request, {'patients': patients, 'form': form,}))
我做错了什么?
谢谢,皮特
【问题讨论】: