Search code examples
pythonpython-3.xdjangodjango-modelsdjango-admin

Django Admin nested inline


I need a nested django admin inline, which I can include the date field inlines in an other inline like below.

I have the models below:

class Person(models.Model):
     name = models.CharField(max_length=200)
     id_no = models.IntegerField()

class Certificate(models.Model):
     cerfificate_no = models.CharField(max_length=200)
     certificate_date = models.DateField(max_length=100)
     person = models.ForeignKey(Person)
     training = models.CharField(max_length=200)

class Training_Date(models.Model):
      date = models.DateField()
      certificate = models.ForeignKey(Certificate)

And, the admin below:

class CertificateInline(admin.StackedInline):
    model = Certificate

class PersonAdmin(admin.ModelAdmin):
     inlines = [CertificateInline,]
admin.site.register(Person,PersonAdmin)

But, I need to include the Training_Date model as inline which is part of Certificate admin inline.

Any idea?


Solution

  • AFAIK, you can't have a second level of inlines in the default Django admin.

    The Django admin is just a normal Django application, so nothing prevents you from implementing a second level of nested forms, but IMHO it would be a kind of convoluted design to implement. Perhaps that is why there is no provision for it.