如何查询以下场景来统计Django中的用户数?

时间:2013-01-31 09:04:01

标签: sql django

我在数据库中有一个名为fileupload_share的表。

+----+----------+----------+----------------+----------------------------------+
| id | users_id | files_id | shared_user_id | shared_date                      |
+----+----------+----------+----------------+----------------------------------+
|  3 |        1 |        1 |              2 | 2013-01-31 14:27:06.523908+00:00 |
|  2 |        1 |        1 |              2 | 2013-01-31 14:25:37.760192+00:00 |
|  4 |        1 |        3 |              2 | 2013-01-31 14:46:01.089560+00:00 |
|  5 |        1 |        1 |              3 | 2013-01-31 14:50:54.917337+00:00 |

我想根据shared_user_id计算file_id的数量。

例如,我想找到有多少用户共享id为1的文件。答案是2个用户(shared_user_id)。我怎样才能在Django中找到它?

1 个答案:

答案 0 :(得分:0)

file_id = 2 #Here is your file_id variable
fileupload_share.objects.filter(file_id = file_id)
    .order_by('shared_user_id').distinct('shared_user_id').count()

正如下面的评论所说,这个例子对MySQL不起作用,因为字段上的方法不同。 但是你可以尝试 danihp 的方法:

file_id = 2 #Here is your file_id variable
fileupload_share.objects.filter(file_id = file_id)
    .values_list('shared_user_id', flat=True).distinct().count()