亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django QuerySet 基于字段值聚合

Django QuerySet 基于字段值聚合

鴻蒙傳說 2023-04-11 15:53:24
我的模型如下:class AssetIdentifications(models.Model):      id = models.BigIntegerField(primary_key=True, db_index=True, editable=False, null=False)    entity = models.ForeignKey(        "Entity", db_constraint=False, null=False,    )    asset = models.ForeignKey(        "Asset", db_constraint=False, null=False    )    type = models.CharField(        max_length=32,        null=False,    )    vendor = models.CharField(        max_length=64, null=False    )    software = models.CharField(        max_length=64, null=False    )    version = models.CharField(        max_length=64, null=False    )我想獲得一個基于 的唯一值分組的查詢集vendor。結果應該是這個樣子:{"vendor1": [\<list of AssetIdentifications\>], "vendor2": [\<list of AssetIdentifications\>] ...}group_bya or函數是否可行aggregate(我在文檔中沒有找到類似的東西)?或者我是否必須遍歷我通過過濾獲得的查詢集AssetIdentifications.objects.filter(entity=e)
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

您可以使用模塊的groupby(…)功能:itertools

from itertools import groupby

from operator import attrgetter


result = {

? ? k: list(vs)

? ? for k, vs in

? ? groupby(AssetIdentifications.objects.order_by('vendor'), attrgetter('vendor'))

}

這是一個將s 映射到對象列表的result字典。vendorAssetIndentification


查看完整回答
反對 回復 2023-04-11
  • 1 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號