0

我有一个被分包的模型

class Foo(models.Model):
    name = models.CharField(max_length=255)
    child_model = models.CharField(max_length=255)

class Bar(Foo):
    woots = models.ManyToManyField(Woot)

class Woot(models.Model):
    color = models.CharField(max_length=255)

还有一些美味的资源:

class FooResource(ModelResource):
    class Meta:
        queryset = Foo.objects.all()

class BarResource(ModelResource):
    class Meta:
        queryset = Foo.objects.all()

class WootResource(ModelResource):
    class Meta:
        queryset = Woot.objects.all()

访问 FooResource 时,如果 child_model 属性 == bar,我理想地希望它“重新路由”并返回 BarResource。

如果我不能这样做,那么我可以通过任何方式将一系列 woots 序列化并放入包中(当 child_model 属性 == bar 时)我都可以。

4

1 回答 1

1

尝试这个:

class FooResource(ModelResource):
    class Meta:
        queryset = Foo.objects.all()  

    def dehydrate(self, bundle):
        if bundle.data['child_model']=="bar":
            return json.loads(BarResource().dispatch_list(bundle.request).content)
        return bundle
于 2013-03-21T09:25:39.390 回答