2012-09-05 40 views
0

这里是我的菜单模式:django-tastypie:我如何从ManyToMany关系中只获取一个对象?

class Menu(models.Model): 
    name = CharField(max_length=255) 
    shop = ForeignKey(Shop) 
    is_active = BooleanField(default=False) 

我需要的是,在ShopResource,ShopResource.menu只返回活动菜单对象。因为总有1个活动的菜单对象。

在ShopResource,我想:

def dehydrate(self, bundle): 
    bundle.data['menu'] = bundle.obj.menu_set.get(is_active=True) 
    return bundle 

但ShopResource.menu是活动菜单对象的字符串表示。我想,我需要序列化一些东西。

有什么想法?

+0

你有你的Meta:queryset = Shop或类似的东西吗? –

回答

0

由于您没有提供任何资源(即资源的源代码)的详细信息,因此很难弄清楚您需要什么以及您当前的情况。

但是我认为,为了得到你所需要的,你可能想指定属性参数是可调用就像这样:

attribute=lambda bundle: Menu.objects.filter(shop=bundle.obj, active=True) 

这使得M2M关系中筛选的对象。

Tastypie不说很多(见Tastypie docs),但希望这会让你开始。

相关问题