0

在完成教程和几个小示例之后,我刚刚开始了我的第一个 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

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

我找到了内联表单,但无法通过阅读文档来了解如何使用它们。

提前非常感谢。

BR,伊格纳西奥。

4

1 回答 1

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)
于 2012-08-15T17:49:47.790 回答