Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django按组保留一个元素,然后在此queryset上使用属性_Python_Django_Django Models_Django Queryset - Fatal编程技术网

Python Django按组保留一个元素,然后在此queryset上使用属性

Python Django按组保留一个元素,然后在此queryset上使用属性,python,django,django-models,django-queryset,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 我希望获得一个扩展queryset,其中只包含每个名称的最后一个版本,然后为每个最近的扩展获取一个元组(名称、路径)

我有一个这样的模型:

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

    @property
    def path(self):
        return something
我希望获得一个扩展queryset,其中只包含每个名称的最后一个版本,然后为每个最近的扩展获取一个元组(名称、路径)

我试过了

latests = Extension.objects.values('name').annotate(last=Max('version'))
但它给了我一个没有属性访问权限的dict


我该怎么做呢?

这里有一种方法可以做到:

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)