簡體   English   中英

Django orm query_set

[英]Django orm query_set

我在網上搜索了各種資料,

但我沒有得到想要的結果。

我正在嘗試解決以下問題,但是:

[
    {
        "vehicle__name": "AAA",
        "vehicle__number": "123",
        "user_id__first_name": ["name1","name2"],
        "vc": 8
    },
    {
        "vehicle__name": "BBB",
        "vehicle__number": "111",
        "user_id__first_name": ["name3"],
        "vc": 5
    }
]

我不知道該怎么辦。

你能幫助我嗎?

我的代碼:

a = TestManager.objects.filter(company_code__in=sub_company).values(
            'vehicle__name',
            'vehicle__number',
            'user_id__first_name'
        ).annotate(
            vc=Count("vehicle__name"),
        ).order_by(
            'vehicle__name',
        )

出去:

[
    {
        "vehicle__name": "AAA",
        "vehicle__number": "123",
        "user_id__first_name": "name1",
        "vc": 9
    },
    {
        "vehicle__name": "AAA",
        "vehicle__number": "123",
        "user_id__first_name": "name2",
        "vc": 1
    },
    {
        "vehicle__name": "BBB",
        "vehicle__number": "111",
        "user_id__first_name": "name3",
        "vc": 10
    }
]

如果你使用Postgres ,你可以試試這個:

from django.contrib.postgres.aggregates import ArrayAgg

a = TestManager.objects.filter(company_code__in=sub_company).values(
    'vehicle__name',
    'vehicle__number'
).annotate(
    vc=Count("vehicle__name"),
    user_id_first_names=ArrayAgg('user_id_first_name', distinct=True)
).order_by('vehicle__name')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM