我有这样的模特。
class Country(models.Model)
name = models.CharField(200)
class Zone(models.Model)
country = models.ForeignKey(Country)
name = models.CharField(200)
class Town(models.Model)
zone = models.ForeignKey(Zone)
name = models.CharField(200)
class Resource(models.Model)
country = models.ForeignKey(Country)
zone = models.ForeignKey(Zone)
town = models.ForeignKey(Town)
name = models.CharField(max_length=200)
...
我想在django admin中编辑资源模型。 由于我有300万镇记录,当我尝试编辑资源时,网站因城镇而停止。 我只想选择与区域相关的城镇。 如果在资源管理页面中更改了区域,则也会显示相关城镇。
有任何想法实现这个吗?
当我使用此功能显示管理表单时,我可以这样做 https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_foreignkey
但我只想根据区域动态加载城镇。
答案 0 :(得分:0)
您正在寻找的是django-smart-selects
的链式选择功能。
当选择框A中的值发生变化时,它将填充选择框B.
答案 1 :(得分:0)
您想要的解决方案的另一个选择是使用ModelAdmin类中的内置raw_id_fields
属性。
raw_id_fields
选项中指定的外键将显示当前选定的值(您所在的城镇)以及一个打开功能齐全的城镇列表的链接,其中包含排序,过滤和搜索表单。来自Django docs的示例截图: