返回多个获取的用户

2024-05-20 02:44:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个视图,它根据传入的技能从数据库中获取多个用户。它的工作原理几乎与所需的一样,除非它返回多个用户,它只传回最近获取的用户。如何聚合要传递回模板的已获取用户。我试着把它们作为一个列表传回去,但它们没有出现

这是我的密码:

form = FilterFreelancerForm(request.POST)
        filtered_skills = set((request.POST.getlist('skills_select')))

        match_fl = Freelancer.object.annotate(c=Count('skills')).filter(c=len(filtered_skills))
        candidate_freelancers = None

        for skill in filtered_skills:
            candidate_freelancers = match_fl.filter(skills=skill)

        freelancers = None

        for freelancer in candidate_freelancers:
            freelancers = User.objects.filter(freelancer=freelancer.id)

    return render(request, 'freelancestudent/browsefreelancers.html', {'freelancers': freelancers,
                                                                       'filter_form': form})

我以前有过这样的经历:

    freelancers = []

    for freelancer in candidate_freelancers:
        freelancers.append(User.objects.filter(freelancer=freelancer.id))

它不向模板返回任何内容


Tags: 用户inform模板forrequestmatchfilter
1条回答
网友
1楼 · 发布于 2024-05-20 02:44:22

而不是:

for freelancer in candidate_freelancers:
    freelancers = User.objects.filter(freelancer=freelancer.id)

尝试:

freelancers = User.objects.filter(freelancer__in=[freelancer.id for freelancer in candidate_freelancers])

输出:

[<User: user1>, <User: user2>]

相关问题 更多 >