自定义Django管理页面以实现依赖选择字段
我刚开始学习Django,现在正在为我的网站开发一个管理面板。我需要有依赖关系的选择框,也就是说,用户在选择了国家后,才能选择城市。我希望在选择国家后,城市的选项能够在城市选择框中加载出来,但我不知道怎么去定制Django的管理界面。我之前用JavaScript、AJAX和PHP做过类似的事情,所以我知道怎么手动实现,但不太清楚在Django中怎么使用AJAX以及如何进行定制。
我在其他问题中看到有人建议阅读Django的文档,所以我尝试去看管理面板的文档,但没找到如何定制Django管理面板的方法。我需要为这些选择框定制整个页面吗?或者请告诉我怎么把一些jQuery代码加进去,这样我就可以通过JavaScript来实现了?
2 个回答
16
你可能想要使用 django smart selects 中的分组选择功能。从说明文档中可以看到:
如果你有下面这个模型:
class Location(models.Model)
continent = models.ForeignKey(Continent)
country = models.ForeignKey(Country)
而且你希望所有国家按照洲来分组,并且在选择时使用这些分组,可以把它改成下面这样:
from smart_selects.db_fields import GroupedForeignKey
class Location(models.Model)
continent = models.ForeignKey(Continent)
country = GroupedForeignKey(Country, "continent")