Python 多人关系中的Django模型:按一组成员筛选

Python 多人关系中的Django模型:按一组成员筛选,python,django,django-models,Python,Django,Django Models,我有这些模型: class Skill(models.Model): name = models.CharField(max_length=20) class Engineer(models.Model): name = models.CharField(max_length=20) skill = models.ManyToManyField(Skill) city = models.ForeignKey(City) class City(models.

我有这些模型:

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


class Engineer(models.Model):
    name = models.CharField(max_length=20)
    skill = models.ManyToManyField(Skill)
    city = models.ForeignKey(City)


class City(models.Model):
    city = models.CharField(max_length=20)
我有两个问题,请抽出时间来帮助我。谢谢:)

1) 我想通过一组技能来筛选工程师。 假设我需要过滤工程师,他们有这些技能['HTML'、'python'、'CSS']。我该怎么做

2) 我想通过一组特定领域的技能来筛选工程师。 假设我需要过滤工程师,他们拥有这些技能['HTML'、'python'、'CSS']这个工程师必须住在阿纳海姆。我该怎么做

您应该阅读部分文档。基本上,查询是用与ForeignKey查找相同的语法完成的。(以防您不使用)

此外,工程师和城市之间没有任何关系,如果你想回答第二个问题这样的问题,你需要在工程师和城市之间添加外键

一,

二,

skills = Skill.objects.filter(name__in=['HTML', 'Python', 'Css'])
engineers = Engineer.objects.filter(skill__in=skills)
city = City.objects.get(name='Anaheim')
engineers = Engineer.objects.filter(skill__in=skills, city=city) # Considering you put a ForeignKey from Engineer to City