Mysql Django中如何限制反向关系中的结果

Mysql Django中如何限制反向关系中的结果,mysql,django,Mysql,Django,我有两个表,一个称为公司,另一个称为用户,每个用户都使用外键与一家公司关联。因此,我可以在Django中使用反向关系来获取特定公司的所有用户(例如,company.users) 在我的例子中,我正在构建ListAPIView,它返回多个公司,我想返回最新创建的用户。我的问题是,我不想使用prefetch\u related或select\u related,这样它会加载所有用户,因为每个公司可能会有数千个用户!此外,我不想在一个单独的查询中加载每个最新用户,因此每个API请求都会有数十个查询 我

我有两个表,一个称为
公司
,另一个称为
用户
,每个用户都使用
外键与一家公司关联。因此,我可以在Django中使用反向关系来获取特定公司的所有用户(例如,
company.users

在我的例子中,我正在构建
ListAPIView
,它返回多个公司,我想返回最新创建的用户。我的问题是,我不想使用
prefetch\u related
select\u related
,这样它会加载所有用户,因为每个公司可能会有数千个用户!此外,我不想在一个单独的查询中加载每个最新用户,因此每个API请求都会有数十个查询

我试过这样的方法:

users_qs = models.User.objects.filter(active=True).order_by('-created')
company_qs = models.Company.objects.prefetch_related(
                 Prefetch('users', queryset=users_qs[:1], to_attr='user')
             ).order_by('-created')
在这种情况下,
prefetch\u related
失败,因为我们无法对
prefetch
queryset
过滤器设置限制(它会导致此错误“一旦获取一个片段,就无法过滤查询”)


有什么想法吗?

我想你是在提供一个对象而不是queryset
预取('users',queryset=users\u qs[:1],to\u attr='user')
我想你是在提供一个对象而不是queryset
预取('users',queryset=users\u qs[:1],to\u attr='user')