Django:如何允许空值
我有以下Django型号:Django:如何允许空值,django,Django,我有以下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_
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定义了字段,因此为什么我不能创建此实例?为每个字段分配一个值,以创建具有null值的实例
AlertCalendar.objects.createstart\u time=None、end\u time=None、start\u date=None、end\u date=None
这将创建一个实例,其中指定的字段为null,正如@Daniel Roseman假定的那样,错误响应来自序列化程序。序列化程序类应该类似于
class AlertCalendarSerializer(serializers.ModelSerializer):
start_time = serializers.TimeField(required=False, allow_null=True)
end_time = serializers.TimeField(required=False, allow_null=True)
start_date = serializers.DateField(required=False, allow_null=True)
end_date = serializers.DateField(required=False, allow_null=True)
这将解决问题。这些错误到底是从哪里来的?@DanielRoseman我不确定,它们没有明确地出现在我的代码中,但你正在做一些事情来获取它们。到底是什么?是来自管理员,来自您发送的API请求,什么?@Jessicachambers您是如何尝试创建实例的?我发送了一个API请求如果您发现此答案有用,请也向上投票!: