1

我正在尝试使用 Django 创建一个工作申请表。

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

  • 软件技能模型
  • 应用程序模型

管理员可以登录到管理部分并将新的软件技能条目添加到数据库中。application_model 使用 ManyToMany-Field 引用那些软件技能条目/记录:

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、数据库和网络开发很陌生,希望你能帮助我:-)!

谢谢你,亨利

4

1 回答 1

2

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()
于 2011-04-19T14:42:14.760 回答