0

ModelAdmin.autocomplete_fields 看起来很容易在 Django 管理员中实现:

class UserAdmin(admin.ModelAdmin):
    autocomplete_fields = ['material']
admin.site.register(User, UserAdmin)    

class MaterialAdmin(admin.ModelAdmin):
        search_fields = ['name']
admin.site.register(Material, MaterialAdmin)

它正确呈现该字段(作为搜索字段而不是下拉菜单),但搜索字段显示“无法加载结果”并检查显示:

*/admin/autocomplete/403(禁止)jquery.js:9203

我假设从 Material 模型接收数据时存在 csrf 问题。我研究了从 csrf 中免除此请求的方法,但无法通过 ModelAdmin.autocomplete_fields 弄清楚如何做到这一点。

我也尝试使用 django-autocomplete-light 并且无法使其正常工作。

4

2 回答 2

1

那是因为 DAL 和 Django 3.2 + 版本之间的冲突。如果你关闭 DAL 就可以解决这个问题。DAL 的 js 重载了 Django 的,仅此而已。要了解更多信息,请点击 Dal 的 github 问题的链接

于 2021-10-27T11:32:46.377 回答
0

如果您实现自己的,请UserAdmin确保按照文档search_fields中的要求进行定义,或者使用 Django作为基类。UserAdmin

此外,如果您刚刚升级了 Django 版本并且它停止工作,请清除缓存以加载正确的 javascript 文件。

于 2021-08-24T14:23:51.140 回答