模型形式的Django必填字段

有一个表格,其中的两个字段在我也不希望出现时按要求列出。这是来自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})

我该怎么做,以便不需要这两个字段?

回答:

如果你不想修改模型中字段的空白设置(这样做将破坏管理站点中的常规验证),则可以在Form类中执行以下操作:

def __init__(self, *args, **kwargs):

super(CircuitForm, self).__init__(*args, **kwargs)

for key in self.fields:

self.fields[key].required = False

重新定义的构造函数不会损害任何功能。

以上是 模型形式的Django必填字段 的全部内容, 来源链接: utcz.com/qa/431061.html

回到顶部