Вопрос: как написать СУХОЙ код для проверки полей как в форме, так и в сериализаторе?
Пример: у меня есть простое приложение django с формой модели, которая проверяет поле passengers
для Order
:
def clean_passengers(self):
passengers = self.cleaned_data['passengers']
if passengers > self.flight.available_seats:
raise forms.ValidationError(
_(u'''Passengers count can`t be greater then seats count'''))
return passengers
И тот же код для проверки в сериализаторе Order
:
def validate_passengers(self, attrs, source):
passengers = attrs[source]
if passengers > self.flight.available_seats:
raise serializers.ValidationError(
_(u'''Passengers count can`t be greater then seats count'''))
return attrs
Это не DRY, и я дважды написал одну и ту же логику. Как я могу этого избежать? Может быть, я могу унаследовать сериализатор от формы или что-то в этом роде.