首页 > 解决方案 > Django model_set 用于元素列表

问题描述

我有以下代码:

class Skill(models.Model):
    name = models.CharField(max_length=60)

class Competency(models.Model):
    skill = models.ForeignKey(Skill, null=True, on_delete=CASCADE)

class Employee(AbstractUser):
    competencies = models.ManyToManyField(Competency, blank=True, related_name='employees')

从特定技能中,我想获得具有该技能能力的员工的查询集。

从该技能中,我能够获得相关能力列表:

skill = Skill.objects.get(pk=id)
competencies = skill.competency_set.all()

鉴于“能力”包含许多元素,我如何做同样的事情来创建员工查询集?

标签: pythondjangodjango-queryset

解决方案


与往常一样,从您想要获得的模型开始:员工。

skilled_employees = Employee.objects.filter(competencies__skill=skill)

要不就

skilled_employees = Employee.objects.filter(competencies__skill_id=id)

推荐阅读