Django 在 null=True 的字段上使用 is_valid
Django using is_valid on a field where null=True
在我的 models.py 中,我有一个特定字段的 null=True。
date = models.DateField(null=True)
我将其留空并按提交。当我在 views.py 中处理 POST 请求时,我打印出 request.POST 并且日期等于“”。我如何让 is_valid 接受它作为空值?
默认值不是布尔字段。默认是您提供的用于设置列的默认值的内容。删除默认值并尝试再次提交表单。
https://docs.djangoproject.com/en/1.7/ref/models/fields/#default
好的,在阅读了其他几篇文章后,我发现了一些有用的东西(但我不确定这是好的做法还是过时的)...无论如何,我找到了 here.这是我使用的示例:
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
我认为您需要在字段中添加 blank=True
,仅此而已。
date = models.DateField(null=True, blank=True)
blank
关键字参数以表单字段为目标,而不是与数据库相关的 null
。你可以在这里阅读 https://docs.djangoproject.com/en/1.7/ref/models/fields/#blank
在我的 models.py 中,我有一个特定字段的 null=True。
date = models.DateField(null=True)
我将其留空并按提交。当我在 views.py 中处理 POST 请求时,我打印出 request.POST 并且日期等于“”。我如何让 is_valid 接受它作为空值?
默认值不是布尔字段。默认是您提供的用于设置列的默认值的内容。删除默认值并尝试再次提交表单。
https://docs.djangoproject.com/en/1.7/ref/models/fields/#default
好的,在阅读了其他几篇文章后,我发现了一些有用的东西(但我不确定这是好的做法还是过时的)...无论如何,我找到了 here.这是我使用的示例:
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
我认为您需要在字段中添加 blank=True
,仅此而已。
date = models.DateField(null=True, blank=True)
blank
关键字参数以表单字段为目标,而不是与数据库相关的 null
。你可以在这里阅读 https://docs.djangoproject.com/en/1.7/ref/models/fields/#blank