我正在尝试使用Django创建一个作业申请表。
基本上,我创建了两个模型。
管理员可以登录admin-section并添加新的软件 - 数据库的条目。 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,数据库和Web开发一般都很陌生并且很有希望 你可以帮帮我: - )!
谢谢你, 亨利
答案 0 :(得分: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()