Django 管理员的 filter_horizontal (& filter_vertical) 不工作
Posted
技术标签:
【中文标题】Django 管理员的 filter_horizontal (& filter_vertical) 不工作【英文标题】:Django admin's filter_horizontal (& filter_vertical) not working 【发布时间】:2011-02-15 22:19:20 【问题描述】:我正在尝试对 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
#...
javascripts 加载正常,我真的不明白会发生什么。 Django 1.1.1 稳定版。
【问题讨论】:
【参考方案1】:我终于找到了解决方案。问题在于该字段的详细名称 - 它是 str 而不是 unicode。迁移到 unicode 有所帮助。
谢谢:-)
【讨论】:
我需要几个小时才能找到答案。 模特的verbose_name="Catégorie"
变为verbose_name=u"Catégorie"
。 1个字符修复,太棒了! @negus,你是个天才。我总是忘记在 python 中仔细检查带有重音符号的字符串!这变得非常烦人。【参考方案2】:
我也在寻找这样的答案。我刚刚发现“filter_horizontal”的值必须是一个列表或元组。 所以这段代码:
filter_horizontal = ("production_companies",)
应该改为:
filter_horizontal = ("production_companies", "production_companies")
【讨论】:
以上是关于Django 管理员的 filter_horizontal (& filter_vertical) 不工作的主要内容,如果未能解决你的问题,请参考以下文章
Django项目实践4 - Django网站管理(后台管理员)