Python 如何从数据库中获取django中id为的唯一值
这是我的查询,它只显示文件名,但我还需要“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
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重复。确定。我会试试的。我会得到所有的值。