Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.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中id为的唯一值_Python_Django - Fatal编程技术网

Python 如何从数据库中获取django中id为的唯一值

Python 如何从数据库中获取django中id为的唯一值,python,django,Python,Django,这是我的查询,它只显示文件名,但我还需要“id” filenames=Upload.objects.values('file').distinct().filter(created_by=request.user).all() 这将只生成唯一的文件作为dict。但我还需要这些文件的“id”,如果在“value”中使用“id”,它将不会给出唯一的文件名。这就是我的问题。我也可以用其他方法来解决这个问题。这会有用的 from django.db.models import F Upload.ob

这是我的查询,它只显示文件名,但我还需要“id”

filenames=Upload.objects.values('file').distinct().filter(created_by=request.user).all()
这将只生成唯一的文件作为dict。但我还需要这些文件的“id”,如果在“value”中使用“id”,它将不会给出唯一的文件名。这就是我的问题。我也可以用其他方法来解决这个问题。

这会有用的

from django.db.models import F

Upload.objects.filter(created_by=request.user).values('file').distinct().annotate(id=F('pk'))

我认为我们不能使用
Distinct
实现它

所以我用了这样的循环

filenames=Upload.objects.filter(created_by=request.user).all()
seen = set()
result = []
for f in filenames:
    if f.file not in seen:
        result.append(f)
        seen.add(f.file)
print result

文件
字段中尝试使用distinct。我也在做同样的事情。您的应用程序是否使用Postgresql?当您想查询特定字段上的不同数据时,您必须遵循以下几点。请确保您在查询代码中添加了
order\u by
,可能与我使用的sqlite重复。确定。我会试试的。我会得到所有的值。