关于国际化的不同数据

时间:2015-09-02 10:45:39

标签: django internationalization django-rest-framework

使用默认语言(英语)调用的端点工作正常,但在阿拉伯语中,我得到的值为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

我不明白国际化会如何导致这种情况。

0 个答案:

没有答案