Django在null = True的字段上使用is_valid

时间:2015-01-08 21:53:46

标签: django django-models django-forms

在我的models.py中,对于特定字段,我有null = True。

date = models.DateField(null=True)

我把它留空并按提交。当我在views.py中处理POST请求时,我打印出request.POST和date等于“”。如何将is_valid作为空值接受?

3 个答案:

答案 0 :(得分:1)

默认不是布尔字段。默认值是您为列设置默认值所提供的内容。删除默认值并尝试再次提交表单。

https://docs.djangoproject.com/en/1.7/ref/models/fields/#default

答案 1 :(得分:1)

好的,在阅读了其他一些帖子之后,我发现了一些有用的东西(但我不确定这是好的做法还是过时的)......无论如何,我发现它{{3 }}。以下是我使用的示例:

class FooForm(forms.ModelForm):
  class Meta:
    #exclude etc as you wish

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

    #init the form as usual
    super(FooForm, self).__init__(*args, **kwargs)

    #then change the required status on the fields:
    self.fields['baz'].required = False

答案 2 :(得分:0)

我认为您需要在字段中添加blank=True,并且全部都是。

date = models.DateField(null=True, blank=True)

blank关键字参数以表单字段为目标,而不是与db相关的null。你可以在这里阅读https://docs.djangoproject.com/en/1.7/ref/models/fields/#blank