Sql Django:ManyToManyField,带附加列

Sql Django:ManyToManyField,带附加列,sql,django,sqlite,model,manytomanyfield,Sql,Django,Sqlite,Model,Manytomanyfield,我正在尝试与Django一起创建一份工作申请表 基本上,我创建了两个模型 软件技能模型 应用模型 管理员可以登录到管理部分并添加新的软件技能- 数据库条目。应用程序模型引用了这些 使用多个字段的softwareskill条目/记录: class softwareskill_model(django.db.models.Model): name = django.db.models.CharField(max_length=200) class application_model(d

我正在尝试与Django一起创建一份工作申请表

基本上,我创建了两个模型

  • 软件技能模型
  • 应用模型
管理员可以登录到管理部分并添加新的软件技能- 数据库条目。应用程序模型引用了这些 使用多个字段的softwareskill条目/记录:

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 | Rating |
这是可能的/最好的方法吗?怎么做

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

谢谢,, 亨利是你需要使用的,例如

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()
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()