0
比方說,我給出了一個我要在其上執行操作的模型實例的主鍵列表(例如delete()
)。我可以這樣做:如何在過濾的django ORM查詢中檢查錯誤的主鍵參數?
Widgets.objects.filter(pk__in=keys).delete()
不過,我不知道是否有在keys
錯誤的PKS,不會被抓的過濾器。
在執行操作之前檢查所有pks是否合法的最有效方法是什麼? len(keys) == Widgets.objects.filter(pk__in=keys).count()
?
任何方式*在*實際調用delete()之前?如果其中一個pks錯誤,我試圖返回404,而不嘗試執行操作。 – Escher
您在問題中提出的建議可以正常工作。 –
另一種方法是啓動一個事務,如果刪除的行數不匹配,則返回+ 404,否則提交。這隻會運行一次查詢。 這仍然是「試圖執行操作」,但可能會好嗎,無論? – Grollicus