#python #django #validation #django-rest-framework #django-serializer
#python #django #проверка #django-rest-framework #django-сериализатор
Вопрос:
У меня есть этот код в моем serializers.py
:
from rest_framework import serializers
from .models import OnlineMeeting
def valid_name(dob):
if dob.isalpha() is False:
raise serializers.ValidationError("Name and surname must contain only letters")
return dob
class MeetingsListSerializer(serializers.ModelSerializer):
class Meta:
model = OnlineMeeting
fields = '__all__'
class OnlineMeetingDetailSerializer(serializers.ModelSerializer):
start_time = serializers.TimeField()
end_time = serializers.TimeField()
owner_first_name = serializers.CharField(validators=[valid_name])
owner_last_name = serializers.CharField(validators=[valid_name])
participant_first_name = serializers.CharField(validators=[valid_name])
participant_last_name = serializers.CharField(validators=[valid_name])
def validate(self, data):
if data['start_time'] > data['end_time']:
raise serializers.ValidationError("finish must occur after start")
return data
class Meta:
model = OnlineMeeting
fields = '__all__'
Я не наследую OnlineMeetingDetailSerializer
от serializers.Serializer
того, что используется для реализации вашей собственной проверки, это плохо? Могу ли я также написать проверку в классах, которые наследуют serializers.ModelSerializer
?
Комментарии:
1. 🙂 может быть, вам следует прочитать документы django-rest-framework.org/api-guide/serializers/… «Класс ModelSerializer такой же, как и обычный класс сериализатора, за исключением того, что: …»
2. Я читал документы, но я не знаю, можно ли написать дополнительную проверку в таком классе, который наследует
serializers.ModelSerializer
3. «Я прочитал документы» не лги мне xD django-rest-framework.org/api-guide/serializers / … не стесняйтесь изменять его, как вы бы сделали с простым
Serializer