一对多模型逻辑



我需要模型逻辑方面的帮助。我正在尝试重新创建一个应用程序跟踪应用程序,该应用程序将接收候选实例。这是我的基本模型结构:

from django.db import models
class Candidate(models.Model):
name = models.CharField(max_length=128)
def __str__(self):
return self.name

class Job(models.Model):
job_title = models.CharField(max_length=128)
def __str__(self):
return self.job_title

class Application(models.Model):
candidate = models.ForeignKey(Candidate, on_delete=models.CASCADE)
job = models.ForeignKey(Job, on_delete=models.CASCADE)
application_date = models.DateField()
def__str__(self):
return str(self.job) + ' ' + str(self.candidate)

以下是逻辑参数:

  • 一个候选人只能有一个实例,但可以有多个应用程序
  • 每个候选人的申请只能存在于一个职位中

可能会导致此 API 视图的内容:

# candidate detail
"candidate": {
# candidate info from model
"id": 1,
...
"applications": {
# application 1
# application 2
}
}
# application detail
"application": {
# application info from model
"id": 1, 
... 
"candidate_id": 1
"job_id": 1
}
# job detail
"job": {
# job info from model
"id": 1, 
...
}

让我失望的一件事是,我将如何能够显示每个候选实例中的应用程序列表以及它与应用程序模型的关系。我什至不知道如何在标题中解释(如果它是正确的(,但我的想法是一个候选人可以有很多申请,但必须是每个工作的一个(唯一候选人(。我真的很感谢任何能为我指出正确方向的人。

编辑:另外,如果同一候选人必须是唯一的,如何提出其他申请?这个模型让我发疯。请帮忙。

乍一看 - 我不确定我是否正确地回答了你的问题 - 你不需要在你的工作模型中有候选人字段。 我会这样做: 1. 拥有候选人模型,就像您一样。 2. 有工作模式,没有候选人字段 3. 拥有应用程序模型,就像您一样。

有了这个"候选人只能有一个实例,但可以有多个应用程序"的问题就完成了。 关于另一个问题"每个候选人的申请只能存在于一个工作中",我认为我会处理它。

希望这有帮助。

最新更新