使用django tastypie访问模型子类属性

时间:2013-03-21 06:22:12

标签: django subclass tastypie

我有一个被放大的模型

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)

和一些tastypie资源:

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时,我理想地希望它能够重新路由#39;如果child_model属性== bar,则返回BarResource。

如果我不能这样做,那么我可以通过任何方式获得一系列woots序列化并进入包中(当child_model属性== bar时)对我没问题。

1 个答案:

答案 0 :(得分: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