python - Django 按组保留一个元素,然后在此查询集上使用属性

标签 python django django-models django-queryset

我有一个这样的模型:

class Extension(models.Model):
    name = models.CharField(max_length=32)
    version = models.CharField(max_length=16)

    @property
    def path(self):
        return something

我想获取一个仅包含每个名称的最后版本的扩展查询集,然后获取每个最近扩展的元组(名称、路径)。

我试过了

latests = Extension.objects.values('name').annotate(last=Max('version'))

但它给了我一个没有属性访问权限的字典

我怎样才能做到这一点?

最佳答案

这是一种方法:

latests = Extension.objects.values('name').annotate(Max('version'))
q_statement = Q()
for pair in latests:
    q_statement |= (Q(name=pair['name']) & Q(version=pair['version__max']))
extensions = Extension.objects.filter(q_statement)

关于python - Django 按组保留一个元素,然后在此查询集上使用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61737617/

相关文章:

django - 使用属性修改模型字段Django

python - 在线程中调用 run 以外的方法

python - 不平衡数据和加权交叉熵

javascript - Django 管理自定义小部件内联处理添加?

django - 如何将对象传递到表单并在 Django 中提交它们

python - 如何设置 matplotlib 以使用 Django 框架(python)

django - Django OAuth 工具包的自定义(可交换)模型

python - 如何在 Django ModelAdmin 字段集中调用模型方法?

python - statsmodels 马赛克图 - 如何排序类别

python - 四舍五入到6位有什么问题吗?