2015-11-03 20 views
7

DjangoのORMグループ私はDjangoのモデルにJSONフィールドを使用してい

JsonTable.objects.filter(type=1).values('type').annotate(Avg('data__superkey')) 

しかし:私は通常のSQLフィールドのために働く、次のクエリを、試してみました

class JsonTable(models.Model): 
    data = JSONField() 
    type = models.IntegerField() 

FieldError: Cannot resolve keyword 'superkey' into field. Join on 'data' not permitted. 

JSONのキー上でグループを作るための方法は、ありますDjangoのORMまたは一部pythを使用して:これは、次のエラーがスローされますlibで、生のSQLを使用せずに?

バージョン:Djangoの1.9b、PostgreSQLの9.4

UPDATE

例2:あなたは、このパッケージを使用している場合

JsonTable.objects.filter(type=1).values('data__happykey').annotate(Avg('data_superkey')) 

happykey

答えて

0

に同じエラーがスローされますhttps://github.com/bradjasper/django-jsonfield 、 ありがとうございます(data__some_json_key) Jsonデータはテキストであるため、raw sql以上に移動する必要があります。クエリーセットextra()メソッドを使用しますが、SQLのJsonを解析するのは難しいようです。

関連する問題