ユーザーが入力するフォームを作成したいと考えています。
このフォームは、Company モデルと Employee モデルで構成されています。
ユーザーに 1 つの会社と必要な数の従業員を 1 つのフォームに追加してもらいたい。
django admin では、この機能は StackedInline で簡単に実現できますが、パブリック フォームで同じ機能を実現するにはどうすればよいですか?
#models.py
class Company(models.Model):
name = models.CharField()
def __unicode__(self):
return self.name
class Employee(models.Model):
company = models.ForeignKey(Company)
first_name = models.CharField()
last_name = models.CharField()
def __unicode__(self):
return self.first_name
#admin.py
class EmployeeInline(admin.StackedInline):
model = Employee
class CompanyAdmin(admin.ModelAdmin):
inlines = [
EmployeeInline,
]
model = Company
admin.site.register(Company, CompanyAdmin)
#forms.py
class CompanyForm(ModelForm):
class Meta:
model = Company
class EmployeeForm(ModelForm):
class Meta:
model = Employee
#views.py
def companyform_view(request):
if request.method == 'POST':
form = CompanyForm(request.POST)
if form.is_valid():
f = CompanyForm(request.POST)
f.save()
return HttpResponseRedirect('/company/added/')
else:
form = CompanyForm()
return render(request, 'form/formtemplate.html', {
'form': form,
})