如果不是休息风格,我应该使用ModelSerializer检查用户输入吗?

时间:2017-08-14 11:21:09

标签: django django-rest-framework

有些情况下,我们只需要使用普通的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字段的格式验证器,否则我必须将验证器复制到序列化器,我不喜欢它。还有更好的方法。

1 个答案:

答案 0 :(得分:0)

让我们假设您成功实现了您的要求,即使您将通过模型应用了唯一的检查。那么为什么不在Serializer级别使用它,或者我错过了什么?