使用一个ModelForm创建多个模型实例

时间:2016-11-11 19:19:34

标签: python django django-models django-forms

我正在尝试创建一个创建和保存多个模型实例的表单。 该模型为Job。我想要做的是创建一个带有一个额外的多选字段target_languages的表单。如果用户选择多种语言,则将创建多个实例,并且每个实例将具有一个target_languages

因此,如果用户选择language_from = 'EN'target_languages = ['RU','HU','GE'],则会创建三个Job个实例。

<Job 'EN' to 'RU'><Job 'EN' to 'HU'><Job 'EN' to 'GE'>

我想这可以使用ModelForm和覆盖save方法来完成,但我不确定如何继续。

class NewOrderForm(forms.ModelForm):
    target_languages = forms.ModelMultipleChoiceField(queryset=Language.objects.all())

    class Meta:
        model = Job
        fields = ['language_from', 'target_languages', 'text_to_translate', 'notes','short_description', ]

    def save(self):
        for target_language in self.cleaned_data['target_languages']:
            self.instance.language_to = target_language
            self.instance.save()

问题在于,在这种情况下,将覆盖一个实例,而不是在每次迭代中创建新实例。

你知道怎么做吗?

0 个答案:

没有答案