显示可以拥有多个实例的模型的表单

时间:2017-09-27 14:47:07

标签: python django django-models django-forms

我正在创建一个关于用户创建简历的简单项目。在简历中,用户可以拥有多种经验,教育背景等。这就是为什么我创建了下表,其中经验,教育背景,技能是简历表的外键。

class Resume(models.Model):
    applicant = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=100, blank=False, null=False, help_text="Full Name")
    slug = models.SlugField(max_length=50, unique=True)
    designation = models.CharField(max_length=200, blank=True, null=True)
    city = models.CharField(max_length=100, blank=True, null=True)

    def __str__(self):
        return self.name

class Education(models.Model):
    resume = models.ForeignKey(Resume, related_name='education')
    name = models.CharField(max_length=100, blank=False, null=False, help_text="Name of an institution")
    course = models.CharField(max_length=200, blank=False, null=False, help_text="Name of a course")
    description = models.CharField(max_length=400, blank=True, null=True)
    start_date = models.DateField()
    end_date = models.DateField()

class Experience(models.Model):
    resume = models.ForeignKey(Resume, related_name='experience')
    designation = models.CharField(max_length=100, blank=True, null=True)
    company = models.CharField(max_length=100, blank=True, null=True)
    description=models.CharField(max_length=400, blank=True, null=True)
    start_date = models.DateField()
    end_date = models.DateField()

class Skill(models.Model):
    resume=models.ForeignKey(Resume, related_name="skills")
    name = models.CharField(max_length=100, blank=True, null=True, help_text="Name of the skill")

    class Meta:
        verbose_name='Skill'
        verbose_name_plural='Skills'

    def __str__(self):
        return self.name

现在针对这种情况,我是否必须创建一个ResumeForm,EducationForm,ExperienceForm等,并创建一个教育,经验和技能formset或 我必须做点别的事。我现在还没有明确的想法如何向前发展这样的形式 教育,技能可以有多个实例的关系。有人可以指导我吗?

1 个答案:

答案 0 :(得分:1)

那么问题还不清楚,但根据你的想法,你有两个选择:

首先,您可以在教育,经验,技能方面拥有现有价值。然后在视图中,您有一个复选框来添加教育,经验和技能。

其次你可以添加教育,经验,技能为每一个创建一个modelForm,然后传递简历,这里没有必要使用formset