如何从DRF表单中发送null到IntegerField
如何从DRF表单中发送null到IntegerField
我有一个简单的模型:\n
class TestRentalObject(models.Model): some_field = models.TextField() build_year = models.PositiveSmallIntegerField( blank=True, null=True, validators=[MinValueValidator(1300), MaxValueValidator(2100)], )
\n使用ModelSerializer:\n
class TestRentObjectSerializer(serializers.ModelSerializer): class Meta: model = TestRentalObject fields = ( "some_field", "build_year" )
\n这是来自表单的输入字段:\n
\n当我保持这个字段为空时,序列化器将其视为无效。\n
In [8]: data = {'some_field': 'some_text', 'build_year': ''} In [9]: rs = TestRentObjectSerializer(data=data) In [10]: rs.is_valid() Out[10]: False In [11]: rs.errors Out[11]: {'build_year': [ErrorDetail(string='需要一个有效的整数。', code='invalid')]}
\n我认为问题在于我将build_year作为一个空字符串而不是None。但是如何正确处理呢?