1
resposta

carregando dois forms no mesmo template

Estou iniciando no Django e estou com o seguinte problema ,

criei um modelo "endereço" e quero relacionar com o modelo "funcionário" , ate ai ok !

class Funcionario (Pessoa):
    endereco = models.ForeignKey('Endereco',on_delete=models.CASCADE, null=False,default='')
    senha = models.CharField(max_length = 10,default = '')

class Endereco (models.Model):    
    rua = models.CharField(max_length = 254,default = '')
    bairro = models.CharField(max_length = 254,default = '')
    cidade = models.CharField (max_length = 254,default = '')
    estado = models.CharField(max_length = 2, default='')
    numero = models.CharField(max_length = 254,default = '')
    complemento = models.CharField(max_length = 254 , default='')
    cep = models.CharField(max_length=9,default = '')

    def __str__(self):
        return self.rua + ' ' + self.bairro

Estou usando o CBV CreateView para renderizar o template :

class FuncionarioAdd(CreateView):
    template_name = 'funcionario_add.html'

    model = Funcionario

    fields = (
        'nome',
        'sobrenome',
        'cpf',
        'email',
        'celular',
        'tel_fixo',
        'senha',    
    )

Minha duvida e o seguinte,quando eu chamo o campo "endereco" no meu formsModel ele renderiza um campo select box , eu gostaria de que ele carregasse o form do endereço .

obs: tentei criar dessa forma :

def create_funcionario(request):
     form_funcionario = FuncionarioForm(request.POST or None)
    form_funcionario_endereco = EnderecoForm(request.POST or None)
     if form_funcionario.is_valid() and form_funcionario_endereco .is_valid():
    form_funcionario_endereco.save()
         form_funcionario.save()
         return redirect('lista_funcionario')
     return render(request,'funcionario_add.html',{ 'form': form_funcionario,'form2': form_funcionario_endereco})

ate renderizou os campos textos do endereço mas ficou me solicitando o preenchimento do campo "endereco_id"

e também acredito que não seja uma boa pratica

desde já obrigado =D

1 resposta

Oi, Messias! Tudo bem? Primeiramente, queria pedir desculpas pela demora na resposta! Às vezes acabam chegando muitas dúvidas juntas e a gente se perde um pouco nelas :/

Você consegue compartilhar aqui com a gente os códigos dos seus Form? Acho que fica mais fácil pra entender tudo. Valeu!