Я в настоящее время создание API, основанный на DRF.I есть модель, которая, как:Как написать поле Custom Validation для ModelSerializers в Django Rest Framework (DRF), подобное проверке формы в Django?
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
и соответствующий Serializer для этой модели, как:
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ('name','description','completed','text')
Теперь мой вопрос заключается в том, что я хотите проверить поле «имя» моей модели при обработке данных. Например, я могу закончить проверку имени или второе имя пользователя с помощью кода 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")
Я знаю, что называется «validate_ (имя_поль)» в классе Serializers.serializer. Но я хочу, чтобы это использовать в Serializers.ModelSerializer вместо. (Просто аналогичен проверки пользовательских форм в Django)
Есть ли что-то похожее на cleaned_data в сериализаторах? –
Да, существует 'serializer.validated_data', который доступен после вызова' .is_valid() 'в сериализаторе. –
Спасибо. Оно работает. –