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