Сериализатор
class AddressSerializer(serializers.ModelSerializer):
Address1 = serializers.CharField(source='address1')
Address2 = serializers.CharField(source='address2')
City = serializers.CharField(source='city')
State = serializers.CharField(source='state')
Zip = serializers.CharField(source='zipcode')
class Meta:
model = Address
fields = ('Address1', 'Address2', 'City', 'State', 'Zip')
Модель
class Address(models.Model):
address1 = models.CharField(max_length=50)
address2 = models.CharField(max_length=50, null=True)
city = models.CharField(max_length=50)
state = models.CharField(max_length=50)
zipcode = models.CharField(max_length=50)
Так в оболочке (manage.py) при запуске:
address = Address(address1='123 Sesame St', address2=None, city='Jurassic City', state='California', zipcode='90210')
address.save()
serializer = AddressSerializer(address)
content = JSONRenderer().render(serializer.data)
stream = io.BytesIO(content)
data = JSONParser().parse(stream)
serializer = AddressSerializer(data=data)
serializer.is_valid()
Почему сериализатор. is_valid () вернуть false? Возможно, что при получении данных адрес Address2 может быть нулевым.
edit: Кажется, проблема в address = None. Потому что когда я добавлю строку, она будет действительной.
Django Rest Framework