0
Currently I have the following code:
@admin.register(Experiencia)
class ExperienciaAdmin(admin.ModelAdmin):
    list_display = ('tipo', 'data_inicio', 'data_fim')
    inlines = [AcademicoInline, ProfissionalInline]
    def get_inline_instances(self, request, obj=None):
        pass
I’d like to register a Experiencia for a user, but the user can choose only one, Academica or Profissional. I’d like to use the field tipo of Experiencia to do this, when the user chooses the type academica, show AcademicaInline, when the user selects profissional, show ProfissionalInline. this record needs to be done using the Django administration module.
I tried to use get_inline_instances, but all my attempts failed.
but models are like this:
class Experiencia(models.Model):
    ACADEMICA = 'AC'
    PROFISSIONAL = 'PR'
    TIPO_CHOICES = [
        (ACADEMICA, 'Acadêmica'),
        (PROFISSIONAL, 'Profissional'),
    ]
    tipo = models.CharField('Tipo', choices=TIPO_CHOICES, max_length=2)
    data_inicio = models.DateField('Data de início')
    data_fim = models.DateField('Data fim')
class Profissional(models.Model):
    empresa = models.CharField('Empresa', max_length=200)
    cargo = models.CharField('Cargo', max_length=200)
    remuneracao = models.FloatField('Remuneração')
    atividade = models.TextField('Atividade')
    experiencia = models.OneToOneField(Experiencia, on_delete=models.CASCADE)
class Academica(models.Model):
    instituicao = models.CharField('Instituição', max_length=200)
    curso = models.CharField('Curso', max_length=200)
    experiencia = models.OneToOneField(Experiencia, on_delete=models.CASCADE)
I’ve seen your new post now. I think it’s that that you want.
– Paulo Marques
That would solve by the front, I wanted in the admin panel of Django, I could not solve, the only way I found is to save the object and then edit again, then I can see the academic or professional field according to the type informed.
– Leonardo Furtado
Who? Wouldn’t point out the form in Experienceadmin? Maybe that help
– Paulo Marques