我正在尝试创建一个创建和保存多个模型实例的表单。
该模型为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()
问题在于,在这种情况下,将覆盖一个实例,而不是在每次迭代中创建新实例。
你知道怎么做吗?