說我有兩個模式是這樣的:與信息標註的queryset
from django.contrib.auth import User
class Post(models.Model):
text = models.TextField()
class Like(models.Model):
post = models.ForeignKey(Post)
user = models.ForeignKey(User)
非常標準,我猜。用戶可以喜歡的帖子列表。 我想要獲得所有Post對象的查詢集,如果當前用戶(認爲request.user
)已經喜歡或不喜歡,用信息註釋。
像這樣的東西(當然這是不正確的)
qs = Post.objects.all().annotate(like__user=request.user)
我要遍歷和QS有一個屬性說,如果當前用戶喜歡的崗位,這樣的事情:
for post in qs:
if post.current_user_liked:
# do something
我想使用註釋的原因當然是性能,我想避免對每個帖子進行查詢以檢查Like with user = request.user是否存在。
我最終以一種更簡單的方法解決了這個問題,當我的方法不可行時,我會爲您的未來提出建議。非常感謝你! – baxeico