我有在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