I have a Locatario model that has two main attributes: one one them concerns to the personal attributes of the person (first form - LocatarioPfForm) and the second one the details about the civil contract we have (the second form - ContratForm).
class LocatarioPfForm(ModelForm):
class Meta:
model = Locatario
fields = ['unidade', 'locatario_nome', 'locatario_genero', 'locatario_rg', 'locatario_cpf', 'locatario_estado_civil', 'locatario_bens', 'locatario_conjuge', 'fiador_boolean', 'fiador_genero', 'fiador_nome', 'fiador_rg', 'fiador_cpf', 'fiador_estado_civil', 'fiador_bens', 'fiador_conjuge']
class ContratoForm(ModelForm):
class Meta:
model = Locatario
fields = ['data_de_inicio', 'data_de_termino', 'valor_bruto', 'valor', 'epoca_pagamento', 'vencimento', 'multa_compensatoria', 'carencia_multa', 'pdf_contrato']
widgets = {
'data_de_inicio': DateInput(),
'data_de_termino': DateInput(),
'carencia_multa': DateInput(),
}
help_texts = {
'multa_compensatoria': '<span class="text-muted">O Valor da multa pode ser tanto em número absoluto, como aluguéis inteiros (ex: 1300 ou 3900), ou pode ser em porcentagem. No último caso, coloca-se a porcentagem em números decimais. 10% é 0.10, por exemplo.</span>',
}
In views.py, I created two views to reference the two forms:
def pessoaFisicaCadastro(request, pk):
loc = locatario_pk(pk)
form = LocatarioPfForm()
if request.method == 'POST':
form = LocatarioPfForm(request.POST)
if form.is_valid():
form.save()
return redirect('contrato-cadastro', pk=pk)
context = {
'form': form,
def contratoCadastro(request):
c_form = ContratoForm()
if request.method == 'POST':
c_form = ContratoForm(request.POST, request.FILES)
if c_form.is_valid():
c_form.save()
return redirect('condominio')
context = {
'c_form': c_form,
}
return render (request, 'cadastro/contrato.html', context)
My urls.py:
path('cadastro/pessoafisica',
views.pessoaFisicaCadastro,
name='pessoafisica-cadastro'),
path('cadastro/<int:pk>/contrato',
views.contratoCadastro,
name='contrato-cadastro'),
This is what I want to do: I have a template (generate.html) that loads LocatarioPfForm. In this same template, there is a button that redirects to another template, contrato.html, which loads ContratoForm. When I save the two, however, I create two distinct objects in the database.
How can I relate the two forms to the same ID?