Zha*_*hev 9 python django postgresql json
我在我的django模型上使用json字段:
class JsonTable(models.Model):
data = JSONField()
type = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
我尝试了下一个查询,它适用于普通的sql字段:
JsonTable.objects.filter(type=1).values('type').annotate(Avg('data__superkey'))
Run Code Online (Sandbox Code Playgroud)
但这会引发下一个错误:
FieldError: Cannot resolve keyword 'superkey' into field. Join on 'data' not permitted.
Run Code Online (Sandbox Code Playgroud)
有没有办法在json键上使用Django ORM或一些python lib,而不使用原始sql?
版本:Django 1.9b,PostgreSQL 9.4
UPDATE
例2:
JsonTable.objects.filter(type=1).values('data__happykey').annotate(Avg('data_superkey'))
Run Code Online (Sandbox Code Playgroud)
抛出相同的错误 happykey
如果您使用此包https://github.com/bradjasper/django-jsonfield,则代码中没有任何内容用于管理此类模拟相关查询(data__some_json_key),因为 Json 数据是文本,您将不得不使用原始 sql 或更好:使用querysetextra()
方法,但是解析sql中的Json似乎很困难。
归档时间: |
|
查看次数: |
1125 次 |
最近记录: |