我有一个被放大的模型
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时)对我没问题。
答案 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