我有以下Django模型:
from django.db import models
class AlertCalendar(models.Model):
alert_calendar_id = models.UUIDField(primary_key=True, default=uuid.uuid4, blank=True, editable=False)
start_time = models.TimeField(null=True, blank=True)
end_time = models.TimeField(null=True, blank=True)
start_date = models.DateField(null=True, blank=True)
end_date = models.DateField(null=True, blank=True)
我想创建一个该模型的实例,其中除id外的所有字段都设置为null
,但是当我尝试这样做时,出现以下错误:
{
"start_time": [
"This field may not be null."
],
"end_time": [
"This field may not be null."
],
"start_date": [
"This field may not be null."
],
"end_date": [
"This field may not be null."
]
}
在只有这些值之一设置为null
的情况下也是如此,但是我同时使用null=True
和blank=True
定义了字段,所以为什么不能创建此字段实例?
答案 0 :(得分:1)
将None
分配给每个字段以创建具有空值的实例。
AlertCalendar.objects.create(start_time = None, end_time = None, start_date = None, end_date = None)
这将创建一个实例,其指定字段为null
答案 1 :(得分:0)
@Daniel Roseman认为,错误响应来自串行器。序列化程序类应类似于
class AlertCalendarSerializer(serializers.ModelSerializer):
start_time = serializers.TimeField(required=False)
end_time = serializers.TimeField(required=False)
start_date = serializers.DateField(required=False)
end_date = serializers.DateField(required=False)
这将解决。