我正在嘗試洗掉 django 中任務表/模型的最后 10 條記錄,但我無法在一個查詢中執行此操作。
Task.objects.filter(type='Active').order_by('-id')[:10].delete()
上面的代碼給了我錯誤AttributeError : 'list' object has no attribute 'delete'。如果我創建一個回圈然后在該串列的每個物件上使用 .delete() 那么它將呼叫 db n 次我不想要的,還有其他方法嗎?
uj5u.com熱心網友回復:
您可以使用查詢集中的主鍵進行過濾pk__in=…:
Task.objects.filter(
pk__in=Task.objects.filter(type='Active').order_by('-id').values('pk')[:10]
).delete()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/409939.html
標籤:
上一篇:DjangoRestFramework-過濾ArrayField包含value1或value2的模型,而不是子集
