typeerror:index_queryset()得到一个意外的关键字参数'using'

fivyi3re  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(472)
Django==3.2.5
django-haystack==3.0
pysolr==3.9.0

Solr = 8.9.0

我正在按照中的说明学习教程https://django-haystack.readthedocs.io/en/master/tutorial.html 使用solr创建django应用程序。
执行时 ./manage.py rebuild_index ,我得到一个错误,如:


**File "/..../tele_env/lib/python3.8/site-packages/haystack/indexes.py", 

line  202, in build_queryset
index_qs = self.index_queryset(using=using)
TypeError: index_queryset() got an unexpected keyword argument 'using'**

解决这个错误已经三天了,我一直很郁闷。试图用Solr6.6对每个包(django、pysolr、haystack)进行降级,但没有帮助我。
请帮我摆脱升级和降级的循环。。。提前谢谢

eh57zj3b

eh57zj3b1#

所以我刚刚读了 django-haystack 3.0,还有一些奇怪的事情。
第一件事是 using 参数从未在函数定义中使用过(可能是用于子类,我没有深入挖掘):

def index_queryset(self, using=None):
        """
        Get the default QuerySet to index when doing a full update.
        Subclasses can override this method to avoid indexing certain objects.
        """
        return self.get_model()._default_manager.all()

回到你的错误,在 build_queryset 方法,参数 using 传递给函数索引\u queryset而不是queryset本身,因此我不明白它为什么会引发错误。
最后一件事是,我使用django 2和3 projets进行了测试,使用始终是queryset的一种方法,而不是参数,所以我很困惑。你的追踪是从哪里来的 Django 3.2haystack 3.0 ?

相关问题