自定义django的管理员以具有相关的选择字段

时间:2011-12-05 01:55:45

标签: python django django-admin

我是django的新手,我正在为我的网站开发管理面板。我需要依赖选择字段,以便在选择国家/地区后,用户将能够选择城市。我希望当我选择国家时,那个国家/地区的城市选项会加载到城市选择框中,但我不知道如何自定义django admin。我在JS中使用AJAX和PHP完成了这项工作。所以我知道如何手动完成,但不知道如何在django中使用ajax以及如何自定义它。

在我读过的其他一些问题上,我应该阅读,django文档,所以我试着阅读并找到管理员文档,但找不到自定义django管理面板的方法。我是否需要为这些选择框自定义整页?或者请告诉我如何添加一些jquery代码,以便我可以通过JS做到?

2 个答案:

答案 0 :(得分:10)

您可能希望在django smart selects中使用Grouped 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")

答案 1 :(得分:0)

关于如何自定义django管理员确实有很好的文档。例如Here,您可以看到如何重新定义管理模板。

在您提出的情况下,您建议的更简单方法是添加一些JavaScript代码,以添加字段额外行为。您可以在模型的管理员中使用该代码指向js文件,如here所述。