Django Null值违反NOTNULL约束,但模型具有blank=True Null=True

Django Null值违反NOTNULL约束,但模型具有blank=True Null=True,django,postgresql,Django,Postgresql,我有一张表格 class EmployeeHistoryForm(forms.ModelForm): department=forms.ModelChoiceField( label=“Пзззззззз”, queryset=Department.objects.all() ) post=forms.ModelChoiceField( label=“жжжжжб”, queryset=Post.objects.all() ) rank=forms.IntegerField( label=“зз

我有一张表格

class EmployeeHistoryForm(forms.ModelForm):
department=forms.ModelChoiceField(
label=“Пзззззззз”,
queryset=Department.objects.all()
)
post=forms.ModelChoiceField(
label=“жжжжжб”,
queryset=Post.objects.all()
)
rank=forms.IntegerField(
label=“ззззззб”,
验证器=[
MaxValueValidator(最大秩),
MinValueValidator(1)
])
开始日期=forms.DateField(
label=“аааааа,
initial=datetime.now().date()
)
类元:
模型=员工历史记录
排除=[“员工”,“结束日期”]
模仿

class EmployeeHistory(models.Model):
employee=models.ForeignKey(employee,on_delete=models.CASCADE)
department=models.ForeignKey(department,on_delete=models.CASCADE)
post=models.ForeignKey(post,on_delete=models.CASCADE)
rank=models.IntegerField(
验证器=[
MaxValueValidator(最大秩),
MinValueValidator(1)
]
)
开始日期=models.DateField()
end_date=models.DateField(blank=True,null=True)
employee
字段是从另一张表单填写的,我想暂时不键入任何
end\u日期

这是一种观点:

def添加员工操作(请求):
如果request.method==“POST”:
...
历史表格=员工历史表格(request.POST)
如果个人表单有效()和历史表单有效():
...
employee.save()
历史=员工历史(
雇员=雇员,
department=department.objects.filter(
pk=请求.职位['department']
)[0],
post=post.objects.filter(
pk=请求.发布['POST']
)[0],
排名=请求。职位['rank'],
开始日期=datetime.now().date(),
结束日期=无
)
history.save()
其他:
...
历史形式=员工历史形式()
返回渲染(
要求
“add_employee.html”,
上下文={
...
“历史形式”:历史形式,
}
)
但是,当我提交表单时,“end_date”列中的
django.db.utils.integrityyror:null值违反了NOTNULL约束
详细信息:失败的行包含(7,12,2019-10-26,null,1,10,1)。
我正在使用PostgreSQL


注意:我在第一次迁移后添加了
blank=True,null=True
,然后再次迁移。这可能很重要。

根据问题,我应该只保留
null=True
。它起作用了

更改字段后,您是否在
migrate
之前执行了
makemigrations
操作?@bloodwithmilk,是的,我希望对此做进一步解释。我得到了相同的错误,但是在链接页面上没有看到DateField应该设置为only null=True,当我这样做时,我得到了相同的错误。