Для этого используется термин « цепочки выбора меню ».
В django имеется ряд реализаций.Тот, который вы можете найти полезным, это django-smart-selects .
Используя django-smart-selects, вы бы описали свои модели следующим образом:
class Manufacturers(models.Model):
name = models.CharField()
class Phones(models.Model):
manufacturer = models.ForeignKey(Manufacturers)
name = models.CharField()
class Prices(models.Model):
phone = ChainedForeignKey(
Phone,
chained_field="manufacturer",
chained_model_field="manufacturer",
show_all=False,
auto_choose=True
)
price = models.DecimalField()
Все сказанное, интересно, реализуете ли вы это наилучшим образом.
Может быть, лучше, чтобы цены отображались в форме администратора для каждого телефона.Таким образом, вместо создания записи о цене и выбора телефона из раскрывающегося списка, вы должны перейти к записи для этого телефона и добавить запись о цене.См. Документацию django по InlineModelAdmin .