私は
ジャンゴ-RESTフレームワーク "GROUPBY" ModelSerializer
class MyModel(models.Model):
key = models.CharField(max_length=255)
value = models.TextField(max_length=255)
category = models.CharField(max_length=4)
mode = models.CharField(max_length=4)
フィールドkey
、category
とmode
次のような状況を持っているが一緒にユニークです。
{
"key": "MODEL_KEY",
"category": "CAT_1"
"MODE_1": { "id": 1, "value": "1" }
"MODE_2": { "id": 2, "value": "2" }
},
{
"key": "MODEL_KEY",
"category": "CAT_2"
"MODE_1": { "id": 3, "value": "1" }
"MODE_2": { "id": 4, "value": "2" }
}
がこれを行うのいずれかの方法があります:
m1 = MyModel(key='MODEL_KEY', value='1', category='CAT_1' mode='MODE_1')
m2 = MyModel(key='MODEL_KEY', value='2', category='CAT_1' mode='MODE_2')
m3 = MyModel(key='MODEL_KEY', value='1', category='CAT_2' mode='MODE_1')
m4 = MyModel(key='MODEL_KEY', value='2', category='CAT_2' mode='MODE_2')
が、私はそうシリアライズされたデータは、このようになりますkey
とcategory
によってグループ意志APIを公開したい:私は、次のオブジェクトを持っていますdjango restフレームワークではModelSerializer
です。
# Postgres specific!
from django.contrib.postgres.aggregates.general import ArrayAgg
qs = MyModel.objects.group_by('key', 'category').annotate(
mode_list=ArrayAgg('mode')).order_by(
'key', 'category').distinct()
あなたはその後、プロパティにアクセスすることができます:あなたのクエリセットを形成するために、上記を使用しhttps://github.com/kako-nawao/django-group-by
:グループDjangoのモデルにあなたを可能にし、まだ結果にクエリセットで動作するモジュールがあり