这是在 Django 1.5 上。
我有一个看似简单的问题,但在实践中却变得非常复杂。所以我在一个工作申请网站上工作,我有两个模型:
- 申请人
- 技能
这 2 个模型通过一个直通模型 ApplySkillScore 相关联。所以它看起来像:
class Applicant(models.Model):
name = models.CharField(max_length=255)
skills = models.ManyToManyField(Skills, through='ApplicantSkillScore')
class Skill(models.Model):
name = models.CharField(max_length=255)
class ApplicantSkillScore(models.Model):
applicant = models.ForeignKey(Applicant)
skill = models.ForeignKey(Skill)
score = models.FloatField(_("Score"))
现在我要做的是呈现一个基于表格的表格来输入申请人的技能分数,如下所示:
-----------------------------------------------
| | | | |
| Applicant | Javascript | Python | Objective-C |
|-----------+------------+--------+-------------|
| John | 5.0 | <Form> | <Form> |
| Jane | <Form> | 6.7 | <Form> |
-----------------------------------------------
这个想法是:
- 申请人和技能是从各自的模型中动态得出的。(如果技能是硬编码的字段,这将容易 10000 倍。)
- 如果存在申请人的技能分数,请显示一个预先填写的表格。否则,显示一个空表单。
Django中是否有一种优雅的方式来呈现这样的表单?