Django管理员在iOS中过滤小部件

时间:2013-02-12 17:36:38

标签: ios django django-forms django-admin

我在自己的表单页面上使用django admin的过滤器小部件。但是,我注意到iOS劫持了这个小部件,用它自己的原生小部件替换它。

无论如何都要阻止这种覆盖吗?

1 个答案:

答案 0 :(得分:1)

这是一个已经开放了两年多的已知错误:

https://code.djangoproject.com/ticket/14716

我认为在修复错误之前,您应该删除所有设备的小部件,或者仅为iOS设备删除它。我假设你更喜欢后者。我想到了一种方法,但它非常hacky。我的想法是修补补丁django.contrib.admin.widgets.FilteredSelectMultiple。您将更改其render方法生成的JavaScript,以便不是让JavaScript立即调用addEvent函数,如果用户代理没有,则会将其称为 包含“iPad”,“iPhone”或“iPod”。您可能还需要覆盖这些文件中定义的updateSelectFilter函数:

  1. django的/了contrib /管理/模板/管理/ edit_inline / stacked.html
  2. django的/了contrib /管理/模板/管理/ edit_inline / tabular.html
  3. 正如我所说,这个解决方案非常hacky,但我不确定这个问题的任何解决办法是否是hacky。