小编Eti*_*nne的帖子

DRF如何序列化模型继承?(读/写)

我有一些模特

class RootModel(models.Model):
    # Some fields

class ElementModel(models.Model):
    root = models.ForeignKey(RootModel, related_name='elements', on_delete=models.CASCADE)

class TextModel(ElementModel):
    text = models.TextField()

class BooleanModel(ElementModel):
    value = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

视图集

class RootViewSet(viewsets.ModelViewSet):
    queryset = RootModel.objects.all()
    serializer_class = RootSerializer
Run Code Online (Sandbox Code Playgroud)

和序列化器

class TextSerializer(serializers.ModelSerializer):
    type = serializers.SerializerMethodField()

    class Meta:
        model = TextModel
        fields = '__all__'

    def get_type(self, obj):
        return 'TEXT'


class BooleanSerializer(serializers.ModelSerializer):
    type = serializers.SerializerMethodField()

    class Meta:
        model = BooleanModel
        fields = '__all__'

    def get_type(self, obj):
        return 'BOOL'


class RootSerializer(WritableNestedModelSerializer):
    elements = ...
    class Meta:
        model = RootModel
        fields …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-rest-framework

5
推荐指数
1
解决办法
1194
查看次数

RxJava使用优化请求

今天我试着解决一个小小的挑战:

您是一家拥有500个办事处的大公司,您想要计算全球收入(每个办事处的收入总和).

每个办公室都提供服务以获得收入.该呼叫需要一定的延迟(网络,数据库访问,......).

显然,您希望尽可能快地获得全球收入.

首先我在python中尝试了非常好的结果:

import asyncio
import time

DELAYS = (475, 500, 375, 100, 250, 125, 150, 225, 200, 425, 275, 350, 450, 325, 400, 300, 175)


class Office:

    def __init__(self, delay, name, revenue):
        self.delay = delay
        self.name = name
        self.revenue = revenue

    async def compute(self):
        await asyncio.sleep(self.delay / 1000)
        print(f'{self.name} finished in {self.delay}ms')
        return self.revenue


async def main(offices, totest):
    computed = sum(await asyncio.gather(*[o.compute() for o in offices]))
    verdict = ['nok', 'ok'][computed == totest]
    print(f'Sum of revenues = {computed} …
Run Code Online (Sandbox Code Playgroud)

java rx-java rx-java2

5
推荐指数
1
解决办法
97
查看次数