我有在Django稍微复杂的模型结构,包括一个用户配置如何在tastypie中创建自定义嵌套的ToMany资源?
class UserProfile(models.Model):
shoppinglist = models.ManyToManyField(Offer)
user = models.OneToOneField(User)
follows = models.ManyToManyField('self', related_name='followers', symmetrical=False, blank=True)
和报价
class Offer(models.Model):
description = models.CharField(max_length=200)
这意思是,每个用户都可以跟随其他用户,可以创建一个购物清单提供他们喜欢的。
我可以创建一个查询,以查看是否有报价在任何我按照这样的
profile.follows.filter(shoppinglist=offer)
人的购物清单,并返回用户配置对象的查询集。
现在,我有和OfferResource和UserProfileResource在我的tastypie API代表这两个模型。
我需要做的是,每当我收到优惠列表时,都会为每个优惠添加一个自定义字段,其中包含我关注的人的列表。
offer: {
description: 'Something'
liked_by: [
{ ... },
{ ... }
]
}
我知道我可以重写“脱水”的方法来添加自定义字段,但如果我在liked_by字段中添加
def dehydrate(self, bundle):
bundle.data['liked_by'] = profile.follows.filter(shoppinglist=bundle.obj)
用户的结果列表是没有序列号或脱水。
任何想法?
谢谢。这正是我所需要的,它只是在获取配置文件方面进行了一点小改动。我以为我读过所有的文档,但显然我错过了这一点。这在文档中并不突出。 – manuel