0

这是我的菜单模型:

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

我需要的是,在 ShopResource 中, ShopResource.menu 仅返回活动的 Menu 对象。因为总是有 1 个活动的 Menu 对象。

在 ShopResource 中,我正在尝试:

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

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

任何的想法?

4

1 回答 1

0

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

但是我认为,为了获得您需要的东西,您可能需要将属性参数指定为可调用的,如下所示:

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

这允许过滤 M2M 关系中的对象。

Tastypie 并没有说太多(请参阅Tastypie 文档),但希望这能让您入门。

于 2012-09-06T01:37:07.567 回答