1
我使用的是带有mongodb的Django-nonrel。我有以下型号:Django错误:您无法将dateOfBirth(一个不可为空的字段)设置为无
class Patient(models.Model):
firstName = models.CharField(max_length=100, blank=True, default='')
lastName = models.CharField(max_length=100, blank=True, default='')
occupation = models.CharField(max_length=100, blank=True, default='')
gender = models.CharField(max_length=50, blank=True, default='')
dateOfBirth = models.DateField()
address = AddressField();
我也为这个模型串行:
class PatientSerializer(serializers.Serializer):
firstName = serializers.CharField()
lastName = serializers.CharField()
occupation = serializers.CharField()
gender = serializers.CharField()
dateOfBirth = serializers.DateField()
address = AddressField();
def create(self, validated_data):
"""
Create and return a new patient
"""
return Patient.objects.create()(**validated_data)
最后,我使用的视图:
def patient_list(request):
# Create a new patient
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = PatientSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JSONResponse(serializer.data, status=201)
return JSONResponse(serializer.errors, status=400)
我发送此JSON请求:
{"firstName":"Yasir","lastName":"Khan","occupation":"Engieneer","gender":"male","dateOfBirth":"2016-08-09","address":"1, avenue Rosa Parks"}
当我尝试这个,我得到一个错误说dateOfBirth是none:
IntegrityError at/records/ 您不能将dateOfBirth(一个不可为空的字段)设置为None!
IntegrityError at /records/
You can't set dateOfBirth (a non-nullable field) to None!
我看不到错误在哪里,如您所见,dateOfBirth并非真的是空的。
我试过这个,不幸的是它没有工作。仍然有同样的错误。 – Spider
我试图设置一个默认值dateOfBirth,它现在工作正常,谢谢! – Spider