0

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

有没有办法阻止这种覆盖?

4

1 回答 1

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/admin/templates/admin/edit_inline/stacked.html
  2. django/contrib/admin/templates/admin/edit_inline/tabular.html

正如我所说,这个解决方案非常hacky,但我不确定这个问题的任何解决方法都不是hacky。

于 2013-02-13T05:33:08.597 回答