我目前正在创建一个基于 DRF 的 api。我有一个模型,如下所示:
class Task(models.Model):
name = models.CharField(max_length = 255)
completed = models.BooleanField(default = False)
description = models.TextField()
text = models.TextField(blank = False, default = "this is my text" )
def __unicode__(self):
return self.name
该模型的相应序列化器为:
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ('name','description','completed','text')
现在我的问题是我想在获取数据的同时验证模型的“名称”字段。例如,我可能会通过类似于 Django 表单的 Python 代码来检查用户的名字或名字:
def clean_name(self):
name = form.cleaned_data.get('name')
first,second = name.split(' ')
if second is None:
raise forms.ValidationError("Please enter full name")
我知道 Serializers.serializer 类中有一个叫做 'validate_(fieldname)' 的东西。但我希望在 Serializers.ModelSerializer 中使用它。(类似于 Django 中的自定义表单验证)