如何防止错误:ModelAdmin.autocomplete_字段中的403?

2024-09-29 20:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

ModelAdmin.autocomplete_字段看起来很容易在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)

它正确地呈现字段(作为搜索字段而不是下拉列表),但搜索字段显示“结果无法加载”,并且inspect显示:

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

我假设存在从材料模型接收数据的csrf问题。我研究了从csrf中豁免此请求的方法,但无法通过ModelAdmin.autocomplete_字段找到如何做到这一点

我也试过使用django autocomplete灯光,但无法让它工作


Tags: djangoregisterfieldssearchadmin管理员siteautocomplete
2条回答

如果您实现自己的UserAdmin,请确保按照documentation中的请求定义了search_fields,或者使用Django的UserAdmin作为基类

此外,如果您刚刚升级了Django版本,但它停止工作,请清除缓存以加载适当的javascript文件

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

相关问题 更多 >

    热门问题