使用默认语言(英语)调用的端点工作正常,但在阿拉伯语中,我得到的值为None。
这是代码
serializers.py
def validate(self, validated_data):
support_request = validated_data.get('support_request')
amount = validated_data.get('amount')
if support_request.raised_in_full():
raise serializers.ValidationError(_('Targeted amount already received'))
if amount > support_request.remaining_amount:
raise serializers.ValidationError(
_('You cannot support with more than {} KWD'.format(support_request.remaining_amount)))
return validated_data
models.py
class SupportRequest(TimeStampedModel):
@property
def amount(self):
try:
value = self.form_values.filter(field__label=self.amount_field.label).first().value
value = Decimal(value).quantize(THREEDIGITS)
except:
value = None
return value
@property
def remaining_amount(self):
if all([self.raised, self.amount]):
return self.amount - self.raised
return self.amount
def raised_in_full(self):
if self.amount == self.raised:
return True
return False
端点在英语上完美运行,但在阿拉伯语上它失败了。 我已经记录了所有变量,而对于英语,所有变量都有值,在阿拉伯语中没有。
使用Postman和rest框架表单界面测试。
validated_data在两种语言中看起来都是一样的。
amount is ok
support_request.amount None
support_request.raised is ok
support_request.remaining_amount is None
我不明白国际化会如何导致这种情况。