簡體   English   中英

在django中從較大的查詢集中排除查詢集而不訪問數據庫

[英]Exclude a queryset from bigger queryset in django without hitting the database

我有一個模型的所有對象的查詢集。 迭代對象,我正在刪除列中具有值重復的更新行。 因此,無需再次訪問數據庫,我想從更大的查詢集中刪除更新的行。

最有效的方法是什么?

您可能需要提供有關特定用例的更多信息,但一般而言,Django推遲對QuerySets的評估,直到實際需要它們為止。 如果能夠獨立於較大的QuerySet構造排除集的QuerySet,則可以調用.exclude()方法並生成一個大型查詢而不是兩個較小的查詢。 例如:

excluded_set = Model.objects.filter(...)
large_set = Model.objects.filter().exclude(id__in=excluded_set)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM