问题描述
我有一个CreateView来创建一个客户,但是我也需要和这个客户一起创建一个识别模型。我有一个身份识别模型,具有模型的外键,因为我们需要能够添加任何数量的ID(驾驶执照,护照等)
I have a CreateView for creating a customer, but I also need to create an 'identification' model along with this customer. I have an identification model that has a foreign key to the model because we need to be able to add any amount of IDs to some (Drivers license, Passport, etc)
无论如何,当前的代码(仅创建一个新客户)如下所示:
Anyways, the current code (Which only creates a new customer) looks like this:
class CustomerCreationView(CreateView):
template_name = "customers/customer_information.html"
form_class = CustomerInformationForm
def get_context_data(self, *args, **kwargs):
context_data = super(CustomerCreationView, self).get_context_data(*args, **kwargs)
context_data.update({
'new_customer': True,
})
return context_data
CustomerInformationForm是ModelForm。我想为标识创建另一个ModelForm,但是我不知道如何将第二个表单添加到CreateView。我发现 ,但它是5岁,而不是在说CreateView。
CustomerInformationForm is ModelForm. I would like to create another ModelForm for Identifications, but I do not know how to add the second form to a CreateView. I found this article, but it is 5 years old and not talking about a CreateView.
推荐答案
如果有人有同样的问题。您可以使用中的CreateWithInlinesView。代码如下所示:
In case anyone else has the same question. You could use CreateWithInlinesView from django-extra-views. The code would look like this:
from extra_views import CreateWithInlinesView, InlineFormSet
class IdentificationInline(InlineFormSet):
model = Identification
class CustomerCreationView(CreateWithInlinesView):
model = CustomerInformation
inlines = [IdentificationInline]
这篇关于Django:使用CreateView创建两个模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!