我在自己的表单页面上使用django admin的过滤器小部件。但是,我注意到iOS劫持了这个小部件,用它自己的原生小部件替换它。
无论如何都要阻止这种覆盖吗?
答案 0 :(得分:1)
这是一个已经开放了两年多的已知错误:
https://code.djangoproject.com/ticket/14716
我认为在修复错误之前,您应该删除所有设备的小部件,或者仅为iOS设备删除它。我假设你更喜欢后者。我想到了一种方法,但它非常hacky。我的想法是修补补丁django.contrib.admin.widgets.FilteredSelectMultiple
。您将更改其render
方法生成的JavaScript,以便不是让JavaScript立即调用addEvent
函数,如果用户代理没有,则会将其称为 包含“iPad”,“iPhone”或“iPod”。您可能还需要覆盖这些文件中定义的updateSelectFilter
函数:
正如我所说,这个解决方案非常hacky,但我不确定这个问题的任何解决办法是否不是hacky。