我正在嘗試在 Django JSONField 的字典串列中查詢一個元素。我可以找到與我類似的問題,但找不到涵蓋我正在嘗試做的事情的問題。看起來它應該很簡單而且相當普遍,所以我懷疑我錯過了一些簡單的東西。
所以。稍微擴展Django 檔案中的示例
假設我有一個名為 JSONField 的 Dog 模型,data它有一些資料,如下所示:
Dog.objects.create(name='Rufus',
data = {"other_pets":
[{"name", "Fishy"},
{"name": "Rover"},
{"name": "Dave"}]}
)
有一個名為的鍵"other_pets",它是一個字典串列。我想撰寫一個查詢,該查詢回傳任何模型,其中包含帶有鍵的 dictname=="Dave"
如果我通過索引參考元素,我可以直接執行此操作,例如:
Dog.objects.filter(data__other_pets__2="Dave")
將回傳行,但我需要參考串列元素的索引,以及我正在查找的專案的位置以及串列的大小因模型而異。
我想也許:
Dog.objects.filter(data__other_pets__contains={"name":"Dave"})
可以,但這不會回傳任何元素。
我正在嘗試做的事情可能嗎?順便說一句,是否可以為這樣的查詢添加索引?
謝謝!
uj5u.com熱心網友回復:
由于other_pets是一個串列,您應該將一個串列傳遞給contains過濾器
Dog.objects.filter(data__other_pets__contains=[{"name":"Dave"}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/467477.html
