Как импортировать данные из поля класса приложения в другое поле класса приложения Django
У меня возникла одна проблема, мне нужно сделать ERP приложение, которое сначала требует несколько данных от клиента, и в конечном итоге, больше данных должно быть включено в эту же клиентскую форму
Client models.py
class Cliente(models.Model):
genero_choices = (
("M","Masculino"),
("F","Feminino"),
("O","Prefiro não dizer"),
)
client_id = models.AutoField(primary_key=True, editable=False)
nome_cliente = models.CharField(max_length=500, null=False, blank=False)
cpf = models.CharField(_('CPF'),max_length=15,null=True,blank=True)
rg = models.CharField(_('RG'),max_length=15,null=True,blank=True)
endereco = models.CharField(_('Endereço'),max_length=100,null=True,blank=True)
procedencia = models.ForeignKey("Entrada", on_delete=models.RESTRICT, null=False,blank=False)
telefone = models.CharField(_('Telefone'),max_length=18, null=False, blank=False)
telefone2 = models.CharField(_('Telefone 2'),max_length=18, null=True, blank=True)
email_cliente = models.EmailField(max_length=255)
genero_cliente = models.CharField(max_length=1,choices=genero_choices)
dt_cadastro = models.DateField(auto_now=True, null=False, blank=False)
cliente_is_active = models.BooleanField(null=False, blank=False)
anexos_cliente = models.FileField(blank=True,null=True)
loja = models.ForeignKey(Loja,on_delete=models.RESTRICT, null=True,blank=True)
vendedor_resp = models.ForeignKey(Funcionario,on_delete=models.RESTRICT, null=True,blank=True,limit_choices_to=Q(cargo=2))
observacoes = models.CharField(_('Observações'),max_length=500,null=True,blank=True)
def __str__(self):
return f"{self.nome_cliente}"
Client admin.py
from clientes.models import Cliente,Entrada
# Clientes Admin
class ClienteAdmin(admin.ModelAdmin):
list_display = ('nome_cliente', 'telefone','genero_cliente','procedencia', 'vendedor_resp','loja','observacoes')
Мне нужно импортировать большую часть класса models.py Cliente в другой appm, который выглядит следующим образом:
Comercial models.py
class Simulacao (models.Model):
contrato_choices = (
("Normal","Normal"),
("Futura","Futura"),
("Mostruario","Produto de Mostruário"),
)
forma_pag_choices = (
("Cartão de Crédito","Cartão de Crédito"),
("Cartão de Débito","Cartão de Débito"),
("Cheque","Cheque"),
("Dinheiro","Dinheiro"),
("Boleto Financeira","Boleto Financeira"),
("Boleto Loja","Boleto Loja"),
("Boleto ElevenCred","Boleto ElevenCred"),
("Transferência PIX","Transferência PIX"),
("Transferência DOC","Transferência DOC"),
("Transferência TED","Transferência TED")
)
parcelamento_lista = []
for i in range(1,37):
parcelamento_lista.append((f"1 + {i}",f"1 + {i}"))
for i in range(1,37):
parcelamento_lista.append((f"S/ Entrada + {i}",f"S/ Entrada + {i}"))
forma_pg_tuple = tuple(parcelamento_lista)
cliente = models.OneToOneField(Cliente,on_delete=models.CASCADE)
total_proposta = models.CharField(_('Total da Proposta'),max_length=20,null=True,blank=True)
desconto_max = models.CharField(_('Desconto Máximo'),max_length=20,null=True,blank=True,)
tipo_contrato = models.CharField(_('Tipo de Contrato'),choices=contrato_choices,null=True,blank=True,max_length=100)
forma_pag = models.CharField(_('Forma de Pagamento'),choices=forma_pag_choices,max_length=50,null=True,blank=True)
parcelamento = models.CharField(choices=parcelamento_lista,max_length=500,null=False,blank=False)
anexo_xml = models.FileField(_('Anexo do XML'),null=True,blank=True,validators=[FileExtensionValidator(allowed_extensions=['xml'])])
brinde_desc = models.CharField(_('Descrição do Brinde'),max_length=300,null=True,blank=True)
brinde_valor = models.CharField(_('Valor do Brinde'),max_length=20,null=True,blank=True)
arquiteto_nome = models.CharField(_('Nome do Arquiteto'),max_length=500,null=True,blank=True)
arquiteto_comissao = models.CharField(_('Comissão do Arquiteto'),max_length=20,null=True,blank=True)
def __str__(self):
return f"{self.cliente}"
Некоторые из этих полей должны быть доступны только для чтения, а другие - для редактирования.