【发布时间】:2010-11-11 04:53:30
【问题描述】:
我有一个表单,当我不想要它们时,会根据需要显示几个字段。这是来自models.py的表格
class CircuitForm(ModelForm):
class Meta:
model = Circuit
exclude = ('lastPaged',)
def __init__(self, *args, **kwargs):
super(CircuitForm, self).__init__(*args, **kwargs)
self.fields['begin'].widget = widgets.AdminSplitDateTime()
self.fields['end'].widget = widgets.AdminSplitDateTime()
在实际的Circuit模型中,字段是这样定义的:
begin = models.DateTimeField('Start Time', null=True, blank=True)
end = models.DateTimeField('Stop Time', null=True, blank=True)
我的views.py在这里:
def addCircuitForm(request):
if request.method == 'POST':
form = CircuitForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/sla/all')
form = CircuitForm()
return render_to_response('sla/add.html', {'form': form})
我该怎么做才能使这两个字段不再是必需的?
【问题讨论】:
-
通过更改小部件无法要求这些字段。如果模型有 (null=True, blank=True),modelForm 将其呈现为 required=False。
-
看来你是对的。这些字段本身不是必需的,但小部件中的日期和时间字段是必需的。
标签: python django forms model widget