我的团队一直在使用 "django-jet"作为我们 Django 应用程序中管理员的皮肤。
我们有非常大的选择小部件的内联,因此 django-jet documentation建议,我们在模型中添加了 autocomplete
字段。
问题是它不支持 TabularInlines。检查 django-jet 的代码,您可以看到如何更改以使小部件工作:
- 在模板目录中复制 Django 的管理“
tabular.html
”。 - 在第一行加载
jet_tags
。 - 将过滤器
jet_select2_lookup
添加到字段。
表格.html
1 {% load i18n admin_urls static admin_modify jet_tags %}
...
...
55 {% if field.is_readonly %}
56 <p>{{ field.contents }}</p>
57 {% else %}
58 {{ field.field.errors.as_ul }}
59 {{ field.field|jet_select2_lookups }}
60 {% endif %}
此方法适用于添加自动完成小部件,但它会因“无效选项”错误而失败。
同时,小部件似乎没有使用管理中定义的formfield_for_foreignkey
方法,因此未过滤查询集。
有没有人使用 django-jet 成功地将自动完成添加到 TabularInline?
最佳答案
一年后,也许我能帮到你。
查看我为 django-jet 制作的这个 PR:
https://github.com/geex-arts/django-jet/pull/329
它会将表单字段的过滤器传递给 select2 元素,而 select2 元素又会在显示选项时将这些过滤器传递给 django-jet。它对我来说很完美。
希望对您有所帮助。
关于python - 使用 TabularInlines 使 Django-Jet 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45065632/