ModelAdmin.autocomplete_fields看起来很容易实现到Django admin中:
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(Forbidden)jquery.js:9203
我假设存在从Material模型接收数据的csrf问题。我研究了从csrf中排除此请求的方法,但无法找出如何通过ModelAdmin.autocomplete_fields来实现这一点。
我也试过使用django-autocomplete-light,但无法让它正常工作。
3条答案
按热度按时间ldioqlga1#
如果你实现了自己的
UserAdmin
,要么确保按照文档中的要求定义了search_fields
,要么使用Django的UserAdmin
作为基类。另外,如果你刚刚升级了Django版本,它停止了工作,请清除缓存以加载正确的JavaScript文件。
ru9i0ody2#
这是因为DAL和Django 3.2 +版本之间的冲突。如果你关闭DAL,它可以解决这个问题。DAL的js重载了Django的1,就是这样。要了解更多信息,请点击链接至Dal's github issue
6ie5vjzr3#
我也遇到过同样的问题,这是由于django版本,它在以前的版本中有这个项目,当我把它传递给新版本时,它开始给予我这种类型的错误。我建议你尝试注解包含autocomplete_fields的行,因为django 3.2已经自动这样做了。
欢迎光临
字符串
一旦注解了这些行,您将看到您的问题将得到解决。
资料来源:
https://groups.google.com/g/django-users/c/RQ-dFgcBaIQ/m/RX5kFxbOAgAJ?pli=1+https://github.com/sehmaschine/django-grappelli/issues/963的数据库