有些情况下,我们只需要使用普通的APIView写普通视图,而Serializer只需检查用户输入,就不会保存为数据库对象。 但有时,我想使用方便的ModelSerializer,例如:
class User(models.Model):
phone = models.CharField(_("phone number"), max_length=11, unique=True,
validators=[
validators.RegexValidator(r'^1[34578]\d{9}$', _("phone format error"))
])
class PhoneCodeSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('phone',)
但是你知道,modelSerializer不仅检查手机格式,还检查唯一。但在这里我只想使用phone字段的格式验证器,否则我必须将验证器复制到序列化器,我不喜欢它。还有更好的方法。
答案 0 :(得分:0)
让我们假设您成功实现了您的要求,即使您将通过模型应用了唯一的检查。那么为什么不在Serializer级别使用它,或者我错过了什么?