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