![](/img/trans.png)
[英]Django: How to get all objects related to a model by another model?
[英]In Django, how to get all instances of a model where an instance of another model related to the first by fk does not exist?
這對我來說真的很棘手。 我有以下型號:
class Item(models.Model):
title = models.CharField(max_length=150)
item_type = models.CharField(choices=item_choices)
class Suggestion(models.Model):
user = models.ForeignKey(User)
item = models.ForeignKey(Item)
我需要獲取給定item_type的所有與它以及給定用戶沒有建議的項目。 可以在一個查詢中實現嗎?
非常感謝!
這可以通過.exclude()
:
items = Item.objects.filter(item_type=item_type).exclude(suggestion__user=user)
這是繼向后有關Suggestion
,並正向關系到User
,並排除任何Item
在相關用戶的用戶符合秒。
一種方法是創建帶有與用戶相關建議的項目查詢集,然后將其用作子查詢。
items_suggested_by_user = Item.objects.filter(suggestion__user=user)
item_types = Item.objects.filter(item_type=item_type)
items = item_types.exclude(item__in=items_suggested_by_user)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.