我正在尝试建立求职者匹配系统。
我想按工作所需的关键技能过滤候选人。每个候选人都有多种技能。每个 Job 都有多个“必需”的 JobSkill,这是一个包含技能重要性的模型。
我想过滤我的候选人,只让候选人具备工作所需的所有关键技能。关键技能定义为重要性 = 3 的 JobSkill。
对于给定的工作“job_1”,我想获得相关候选人如下:
critical_skills = job_1.required_skills.filter(importance=3)
relevant_candidates = Candidate.objects.filter('candidate how has all the critical_skills)
模型.py:
class Skill(models.Model):
title = models.CharField(max_length=100, blank=False, unique=True)
class JobSkill(models.Model):
skill = models.ForeignKey(Skill, on_delete=models.CASCADE)
class Importance(models.IntegerChoices):
HIGH = 3
MEDIUM = 2
LOW = 1
importance = models.IntegerField(choices=Importance.choices)
class Job(models.Model):
title = models.CharField(max_length=100, null=False)
required_skills = models.ManyToManyField(JobSkill, blank=True)
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
class Candidate(models.Model):
title = models.CharField(max_length=100, blank=False, null=False)
full_name = models.CharField(max_length=100, blank=False, null=False)
skills = models.ManyToManyField(Skill, blank=True)
我将不胜感激任何帮助!
谢谢