【问题标题】:customizing admin of django to have dependent select fields自定义 django 的管理员以具有依赖的选择字段
【发布时间】:2012-01-12 21:27:17
【问题描述】:
我是 django 新手,我首先为我的网站开发管理面板。我需要有依赖的选择字段,这样在选择国家后,用户就可以选择城市。我希望当我选择国家/地区时,该国家/地区的城市选项会加载到城市选择框中,但我不知道如何自定义 django 管理员。我已经在 JS 中这样做了,使用 AJAX 和 PHP。所以我知道如何手动操作,但不知道如何在 django 中使用 ajax 以及如何自定义它。
关于我读到的其他一些应该阅读的问题,django 文档,因此我尝试阅读和查找管理文档,但找不到自定义 django 管理面板的方法。我是否需要为这些选择框自定义整页?或者请告诉我如何添加一些jquery代码以便我可以通过JS来完成?
【问题讨论】:
标签:
python
django
django-admin
【解决方案1】:
您可能希望使用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")
【解决方案2】:
关于如何自定义 django 管理员确实有很好的文档。例如Here,您可以查看如何重新定义管理模板。
但是,在您提出的情况下,您建议的更简单的方法是添加一些 JavaScript 代码来添加字段额外的行为。您可以在模型的管理员中使用该代码指向 js 文件,如 here 所述。