我需要模型逻辑方面的帮助。我正在尝试重新创建一个包含Candidate实例的应用程序跟踪应用程序。这是我的基本模型结构:
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,
...
}
让我大吃一惊的是,我如何能够显示每个候选实例中的“应用程序”列表以及它如何与“应用程序”模型相关联。我什至不知道如何在标题中说明(甚至正确),但我的想法是一个候选人可以有很多申请,但每项工作都必须是一个(唯一的候选人)。我真的很感激任何能为我指出正确方向的人。
编辑:此外,如果必须是唯一的,同一候选人将如何提出其他申请?这种模式使我发疯。请帮忙。
答案 0 :(得分:0)
乍一看-我不确定我是否能正确理解您的问题-您不需要在Job模型中有候选人字段。 我会这样做: 1.像您一样拥有候选模型。 2.有Job模型,没有候选人字段 3.和您一样拥有应用程序模型。
使用此“候选人只能有一个实例,但可以有多个应用程序”的问题来解决。 关于另一个问题“每个候选人的申请只能在一个工作中存在”,我将按照您的看法处理。
希望这会有所帮助。