This fits into a category generally referred to as either “cascading selects”, “chained selects”, “dependent dropdowns” or some such mix to that effect.
See the post (and the related links) at Django 5: Within the form, filter data with another field of the same form - #4 by KenWhitesell. You might also want to look at Django: how to choose from a list based on the previous selection? for an actual implementation. (You might also want to check out djangopackages.org for other options.)