Get data from field another model

13 Views Asked by At

In the Form of a Orcamento App I have Choice Field with Model Pessoa from APP Pessoa when selecting, I would like it to show the UF of this Person. This person's UF is in the Address Model in the same Pessoa APP. Pessoa_Ender have a foreign key with the Pessoa model: company = models.ForeignKey(Company, on_delete=models.CASCADE, related_name='pessoa_ender_set').

APP Pessoa:

class Pessoa(models.Model):
nome = models.CharField(verbose_name='Nome', max_length=255, 
null=False, blank=False)
pessoa_tipo = models.CharField(verbose_name='Tipo', max_length=10, 
null=True, choices=PESSOA_TIPO,                                   
default='Jurídica')
pessoa_cat = models.CharField(verbose_name='Categoria', 
max_length=50, null=True, choices=PESSOA_CAT,
default='Pecuarista')
created_at = models.DateTimeField(verbose_name='Criação', 
default=timezone.now)
situacao = models.CharField(verbose_name='Situação', 
max_length=50, null=True, choices=SITUACAO, default='Ativo')
def __str__(self):
return self.nome**

App Pessoa:

class Pessoa_Ender(models.Model):
pessoa = models.ForeignKey(Pessoa, on_delete=models.CASCADE, 
related_name='pessoa_ender_set')
logradouro = models.CharField(verbose_name='Logradouro', 
max_length=100, null=True, blank=True)
numero = models.CharField(verbose_name='Número', max_length=10, 
null=True, blank=True)
bairro = models.CharField(verbose_name='Bairro', max_length=50, 
null=True, blank=True)
municipio = models.CharField(verbose_name='Município', 
max_length=50, null=True, blank=True)
uf = models.CharField(verbose_name='UF', max_length=2, null=True, 
blank=True)

App Orcamento

class Orcamento(models.Model):
data_criacao = models.DateTimeField(verbose_name='Data da 
Criação', default=timezone.now)
nome_empresa = models.OneToOneField('parametros.Empresas', 
on_delete=models.CASCADE, related_name='nomempresas_set')
nome = models.ForeignKey('pages.Pessoa', on_delete=models.CASCADE,
related_name='fornepessoa_set', null=False)
uf = models.OneToOneField('pages.Pessoa_Ender', 
on_delete=models.CASCADE, related_name='ufpessoaender_set',
null=False)

Forms.py

class PreOrcamentoForm(forms.ModelForm):
class Meta:
model = PreOrcamento
fields = ['data_criacao', 'nome_empresa', 'nome', 'uf']
labels = {
'data_criacao': 'Data da Criação',
'nome_empresa': 'Nome da Empresa',
'nome': 'Nome do Fornecedor',
'uf': "Estado do Fornecedor",
}

Template

<div class="col-2">{{ form.nome|as_crispy_field }}</div>
<div class="col-2">{{ form.uf|as_crispy_field }}</div>
0

There are 0 best solutions below