It is not difficult to create chained dropdown list in Django with custom template, but in one project, I need to create it in Django admin page.
I need to create chained dropdown list of area in my app. For your information, my country, Indonesia, has four levels of area.
And this is my area model.
from django.db import models class Provinsi(models.Model): name = models.CharField(max_length=255, null=True, blank=True) code = models.IntegerField(null=True, blank=True) class Meta: db_table = 'provinsi' verbose_name_plural = 'provinsi' def __str__(self): return self.name class Kabupaten(models.Model): name = models.CharField(max_length=255, null=True, blank=True) code = models.IntegerField(null=True, blank=True) provinsi_code = models.IntegerField(null=True, blank=True) provinsi = models.ForeignKey( Provinsi, on_delete=models.CASCADE ) class Meta: db_table = 'kabupaten' verbose_name_plural = 'kabupaten' def __str__(self): return self.name class Kecamatan(models.Model): name = models.CharField(max_length=255, null=True, blank=True) code = models.IntegerField(null=True, blank=True) kabupaten_code = models.IntegerField(null=True, blank=True) kabupaten = models.ForeignKey( Kabupaten, on_delete=models.CASCADE ) class Meta: db_table = 'kecamatan' verbose_name_plural = 'kecamatan' def __str__(self): return self.name class Kelurahan(models.Model): name = models.CharField(max_length=255, null=True, blank=True) code = models.BigIntegerField(null=True, blank=True) kecamatan_code = models.IntegerField(null=True, blank=True) kecamatan = models.ForeignKey( Kecamatan, on_delete=models.CASCADE ) class Meta: db_table = 'kelurahan' verbose_name_plural = 'kelurahan' def __str__(self): return self.name I have another app called warehouse. This app has some foreign key columns related to area model (one to many relationship). This is the warehouse model.
...