Django admin的filter_horizontal(和filter_vertical)无法工作
我正在尝试在ManyToMany字段中使用ModelAdmin.filter_horizontal和ModelAdmin.filter_vertical,而不是使用多选框,但我得到的结果是:

我的模型:
class Title(models.Model):
#...
production_companies = models.ManyToManyField(Company, verbose_name="компании-производители")
#...
我的管理界面:
class TitleAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("original_name",)}
filter_horizontal = ("production_companies",)
radio_fields = {"state": admin.HORIZONTAL}
#...
JavaScript加载得很好,我真的不明白发生了什么。Django 1.1.1稳定版。
3 个回答
0
另一个可能导致 filter_horizontal
无法正常工作的原因是覆盖了 form.media
属性,这个属性包含了这个小工具所需的JavaScript文件。
0
我也在找这样的答案。刚刚发现'filter_horizontal'的值必须是一个列表或者元组。
所以这段代码:
filter_horizontal = ("production_companies",)
应该改成:
filter_horizontal = ("production_companies", "production_companies")
14
我终于找到了问题的解决办法。问题出在字段的名字上——它用的是 str 类型,而不是 unicode 类型。换成 unicode 类型后就解决了。
谢谢 :-)