获取当前用户特定数据的两种方法中哪一种更快?例如:
class FriendProfileDetail(ListView):
model = Friend
def get_queryset(self):
return self.model.objects.filter(friend_of=self.request.user.profile)
VS
class FriendProfileDetail(ListView):
model = Friend
def get_queryset(self):
queryset = self.request.user.profile.friends.all()
return queryset
答案 0 :(得分:0)
这两个过滤器和查询之间完全没有区别。但是,在我看来,正如The Zen of Python所说:"明确比隐含更好。" 。
因此,当您的ListView
与Friend
模型相对应时,使用self.model
代替self.request.user
进行对象过滤会更直接。
另一件事是self.request.user
过滤更短,不使用filter()
而是使用all()
,这似乎很简单。
无论如何,结果都是一样的。只需选择一种方法即可。