【发布时间】:2010-12-14 01:19:24
【问题描述】:
我遇到了一些性能问题,因为我进行了很多不知道如何减少的查询调用。
user_item_rel_set 是用户和项目之间的 m2m 关系,显示用户为特定项目支付了多少费用。每个项目可以有多个用户和买家,我正在尝试获取特定用户的 m2m 关系。
# find anything that you bought or used and how much you paid for it
u = User.objects.get(id=self.uid)
t = self.list.filter(user_item_rel__user__exact=u)
y = self.list.filter(buyer_item_rel__buyer__exact=u)
items = t | y
items = items.distinct()
u = User.objects.get(id=self.uid)
for t in items:
try:
t.price = t.user_item_rel_set.get(user=u).payment_amount
except:
t.price = -1 * t.buyer_item_rel_set.get(buyer=u).payment_amount
return items
在另一个例子中
for i in new_list:
if str(i.tag) not in x:
x[str(i.tag)] = 0
if houseMode == 0:
x[str(i.tag)] += float(i.user_item_rel_set.get(user__id__exact=self.uid).payment_amount)
else:
x[str(i.tag)] += float(i.price)
【问题讨论】: