我有一个表单,当我不需要的时候,有几个字段会按要求显示出来。这是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()
在实际电路模型中,字段的定义如下:
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})
我该怎么做才能不需要这两个字段?
这里这么说:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/
看起来你做得很好。 您可以检查
self.fields['end'].required
的值。扩展DataGreed的答案,我创建了一个Mixin,允许您在
Meta
类上指定一个fields_required
变量,如下所示:这里是:
如果不想修改模型中字段的空白设置(这样做将破坏管理站点中的正常验证),可以在窗体类中执行以下操作:
重新定义的构造函数不会损害任何功能。
相关问题 更多 >
编程相关推荐