DKH
DKH

Reputation: 462

Show InlineModelAdmin for nested Model

I have nested models with OneToOneFields and want to have an InlineModelAdmin form in one ModelAdmin to point to a nested model...

models.py:

class User(models.Model):
    username = models.CharField(max_length=128)
    password = models.charField(max_length=128)

class IdentityProof(models.Model):
    user = models.OneToOneField(User, on_delete=models.PROTECT, related_name='proof')
    proof_identity = models.FileField(upload_to='uploads/%Y/%m/%d/')

class Company(models.Model):
    user = models.OneToOneField(User, on_delete=models.PROTECT, related_name='company')
    name = models.CharField(max_length=128)

class Person(models.Model):
    user = models.OneToOneField(User, on_delete=models.PROTECT, related_name='person')
    name = models.CharField(max_length=128)

admin.py:

class IdentityProofInline(admin.TabularInline):
    model = IdentityProof

@admin.register(Company)
class CompanyAdmin(admin.ModelAdmin):
    inlines = [IdentityProofInline]

@admin.register(Person)
class PersonAdmin(admin.ModelAdmin):
    inlines = [IdentityProofInline]

For CompanyAdmin or PersonAdmin, I want to show its User's IdentityProof. How can I do that ?

I tried to use fk_name = 'user_proof or other combinations but it doesn't work...

Thanks.

Upvotes: 1

Views: 494

Answers (1)

DKH
DKH

Reputation: 462

This is not possible without an external package.

See Django Nested Inline and Django Nested Admin

Upvotes: 1

Related Questions