【发布时间】:2014-06-04 20:49:15
【问题描述】:
问题:如何为表单和序列化程序中的字段验证编写 DRY 代码?
示例:
我有一个带有模型表单的简单 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,我已经写了两次相同的逻辑。我怎样才能避免这种情况?也许我可以从表单或类似的东西继承序列化程序。
【问题讨论】:
标签: python django django-rest-framework