Search code examples
djangochaining

How to populate (Chained) Dependent Dropdown


I want to populate dependent combos based on selection of parent combos. my code is as follow:

class Species(models.Model):
    name = models.CharField(max_length=120, blank=False, null=False)
    description = models.TextField(max_length=300, blank=False, null=False)

class SpeciesDetail(models.Model):
    species = models.ForeignKey(Species, on_delete=models.CASCADE)
    picture = models.ImageField(upload_to='pics')
    gender = models.CharField(max_length=1)
    health = models.CharField(max_length=120)


class Pair(models.Model):
    species = models.ForeignKey(Species, on_delete=models.CASCADE)
    male = models.ForeignKey(SpeciesDetail, on_delete=models.CASCADE, related_name='male_set')
    female = models.ForeignKey(SpeciesDetail, on_delete=models.CASCADE, related_name='female_set')

from django.contrib import admin

from .models import Species, SpeciesDetail, Pair,

Register your models here.

class PairAdmin(admin.ModelAdmin):
    list_display = ('species', 'male', 'female',)
    search_fields = ('male', 'female', )
    filter_horizontal = ()
    list_filter = ()
    ordering = ['species']
    fieldsets = ()

Solution

  • The answer is DAL(Django Autocomplete Light.