在序列化字段之间共享数据

时间:2018-07-23 13:52:56

标签: python django serialization

我有一个ModelSerializer类,该类使用SerializerMethodField实现了一些字段。有一些字段根据从数据库(如果有的话)或银行API检索的汇率计算货币数据。 在当前的实现中,对数据库有很多简短的查询,只是为了检索或检查速率。我正在考虑通过在字段之间共享已经计算的数据来减少查询数量。 该代码将更好地解释该想法:

class CalcualteSomethingSerializer(ModelSerializer):
    currency_value_1 = serializers.SerializerMethodField()
    currency_value_2 = serializers.SerializerMethodField()

    def get_currency_value_1(obj):
        if obj.currency_code != 'USD':
            rate = get_rates('USD', obj.currency_code, obj.date)
            return calculation_logic1(obj.value, rate)

    def get_currency_value_2(obj):
        if obj.currency_code != 'USD':
            rate = get_rates('USD', obj.currency_code, obj.date)
            return calculation_logic2(obj.value, rate)

我尝试将费率保存到self._kwargs中,但是它仅减少了5个查询的查询次数。

0 个答案:

没有答案