环境
django==3.8.18
elasticsearch==7.13.4
drf-haystack==1.8.11
django-haystack==3.2.1
原因
django-haystack如果没有指定HAYSTACK_IDENTIFIER_METHOD,默认使用<app.label>.<object_name>.<pk>
作为id进行删除,而大部分生成文档时都是默认使用纯数字作为id。
解决方法
将删除id改为自定义的数字id,在settings.py中配置:
get_identifier = lambda obj: obj.id
HAYSTACK_IDENTIFIER_METHOD = '你的项目名称.settings.get_identifier'
PS:全网几乎没搜到该问题的答案,还是自己通过全面分析了django-haystack源码才发现的,不知道是大家都没遇到还是都去用java了?有知道的朋友希望可以告诉我一下
标签:删除,get,doc,django,文档,RealtimeSignalProcessor,haystack,id From: https://www.cnblogs.com/aiyablog/p/17372004.html