Django:带附加列的ManyToManyField



我正在尝试用Django创建一个求职申请表。

基本上,我创建了两个模型。
  • softwareskill_model
  • application_model

管理员可以登录到管理员区并添加新的软件技能数据库的条目。application_model引用了它们使用多对多字段的软件技能条目/记录:

class softwareskill_model(django.db.models.Model):
    name = django.db.models.CharField(max_length=200)
class application_model(django.db.models.Model):
    # ...
    softwareskills = django.db.models.ManyToManyField(softwareskill_model)

所以如果有人想申请这份工作,他可以选择哪个他使用的软件包。

现在我希望申请人对每个软件技能进行1-6分的评分他选好了。你是怎么做到的?

我正在使用SQLite3数据库,并发现ManyToManyField创建一个新表来存储关系。对我来说,它看起来像:

| ID | application_model_id | softwareskill_model_id |

我的假设是简单地添加一个新列,看起来像这样:

| ID | application_model_id | softwareskill_model_id | Rating |

那是可能的/最好的方法吗?如何?

我对Django,数据库和web开发非常陌生,希望你可以帮我:-)!

谢谢你,亨利

through是你需要使用的,例如

class softwareskill_model(django.db.models.Model):
    name = django.db.models.CharField(max_length=200)
class application_model(django.db.models.Model):
    # ...
    softwareskills = django.db.models.ManyToManyField(softwareskill_model, through="ApplicationSoftwareSkill")
class ApplicationSoftwareSkill(models.Model):
    softwareskill = models.ForeignKey(softwareskill_model)
    application = models.ForeignKey(application_model)
    # extra fields here e.g.
    rating = models.IntegerField()

相关内容

  • 没有找到相关文章

最新更新