[英]Django: using F() expressions on JSONField?
我有模特
class Product(Model):
properties = JSONField()
查詢時
Product.objects.values('properties__color')
我得到了正確的結果
SELECT product.properties-> color FROM product
但是,當我做我認為相同的事情時
Product.objects.values(color=F('properties__color'))
執行的查詢完全不同
SELECT product.properties AS顏色FROM產品
這是django的JSONField的錯誤,還是我誤解了F()
表達式?
您可以使用普通values('fieldname__lookup')
因為自從v2.1起, values()
支持查找:
Product.objects.values('properties__color')
但是F
表達式不支持查找; 事實上,他們默默地丟棄它們,正如你的榜樣所證明的那樣。
當使用JSONField
轉換,注意一個錯誤 ,當你正在尋找的字段被深套以上的水平。 在鏈接的問題中,如果普通values()
不夠,您還可以找到使用命名注釋的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.