Django:编辑相关模型 - 使用自定义表单的反向方式

时间:2012-08-15 17:15:21

标签: django forms

在完成教程和几个小样本之后,我刚刚开始了我的第一个django应用程序。我有以下模型(非常简化):

class Candidate(models.Model):
    name = models.CharField(max_length=100)

class Vacancy(models.Model):
    title = models.CharField(max_length=100)
    description = models.CharField(max_length=200)
    candidates = models.ManyToManyField(Candidate, blank=True, null=True)

我已经创建了一个表格,我可以添加一个新的空缺,候选人显示为多选框:

class CandidateForm(ModelForm):
    class Meta:
        model = Candidate

class VacancyForm(ModelForm):
    class Meta:
        model = Vacancy

但是,我应该如何在候选表格上添加一个选择框,这样我还可以查看候选人申请的职位空缺?

我找到了内联表单,但是通过阅读doc无法实现如何使用它们。

提前多多感谢。

BR, 伊格纳西奥。

1 个答案:

答案 0 :(得分:0)

手动添加ModelChoiceField会让你到达那里:

from django import forms

class CandidateForm(ModelForm):
    vacancies = forms.ModelChoiceField(queryset=Vacancy.objects.order_by("title"))
    class Meta:
        model = Candidate

然后在你看来,你会做类似的事情:

if request.POST:
    form = CandidateForm(request.POST)
    if form.is_valid():
        candidate = form.save()
        for v in form.cleaned_data["vacancies"]:
            v.candidates.add(candidate)