我正在尝试用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()