Python 名称错误:名称';基数';未定义(干草堆搜索)
我想在django应用程序中包含全文搜索。我正在为此使用whoosh haystack。当我在已安装的应用程序中包括whoosh和haystack,并执行命令./manage.py时,我收到一个导入错误。有人能解决这个问题吗Python 名称错误:名称';基数';未定义(干草堆搜索),python,django,django-haystack,whoosh,Python,Django,Django Haystack,Whoosh,我想在django应用程序中包含全文搜索。我正在为此使用whoosh haystack。当我在已安装的应用程序中包括whoosh和haystack,并执行命令./manage.py时,我收到一个导入错误。有人能解决这个问题吗 settings.py INSTALLED_APPS = { 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.
settings.py
INSTALLED_APPS = {
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'search',
'whoosh',
'haystack',
}
在我的模型中进行迁移时,我得到的错误是:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\Samad Talukder\AppData\Local\Programs\Python \Python36\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line
utility.execute()
File "C:\Users\Samad Talukder\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\__init__.py", line 303, in execute
settings.INSTALLED_APPS
File "C:\Users\Samad Talukder\AppData\Local\Programs\Python\Python36\lib\site-packages\django\conf\__init__.py", line 48, in __getattr__
self._setup(name)
File "C:\Users\Samad Talukder\AppData\Local\Programs\Python\Python36\lib\site-packages\django\conf\__init__.py", line 44, in _setup
self._wrapped = Settings(settings_module)
File "C:\Users\Samad Talukder\AppData\Local\Programs\Python\Python36\lib\site-packages\django\conf\__init__.py", line 92, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Users\Samad Talukder\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "C:\Users\Samad Talukder\Desktop\django-env\search\search\settings.py", line 80, in <module>
'PATH': os.path.join(base(), 'whoosh_index')
NameError: name 'base' is not defined
my models.py:
from django.contrib.auth.models import User
from django.db import models
class Author(User):
pass
class Book(models.Model):
title = models.CharField(max_length=300)
author = models.ForeignKey(Author)
isbn = models.CharField(max_length=300)
resume = models.TextField()
def __unicode__(self):
return self.title
有关更多信息,我使用django pip安装方法在django项目中安装haystack和whoosh,如下所示:
pip install haystack
pip install whoosh
回溯很清楚:
File "C:\Users\Samad Talukder\Desktop\django-env\search\search\settings.py", line 80, in <module>
'PATH': os.path.join(base(), 'whoosh_index')
NameError: name 'base' is not defined
文件“C:\Users\Samad Talukder\Desktop\django env\search\search\settings.py”,第80行,在
'PATH':os.PATH.join(base(),'whoosh_index')
NameError:未定义名称“base”
这意味着settings.py文件的第80行使用了一个未定义的名称(
base
——显然应该是一个函数)。设置文件缺少导入或函数定义。base
应该做什么etc超出了我们的知识范围(它肯定不是内置的,在django设置文件中也不是标准的),但现在应该这样做,因为它是您的项目 你定义了base()函数吗?不,我不理解base函数。请解释一下。PATH:os.PATH.join(base(),'whoosh_index')@ABDULNIYASPM-see
File "C:\Users\Samad Talukder\Desktop\django-env\search\search\settings.py", line 80, in <module>
'PATH': os.path.join(base(), 'whoosh_index')
NameError: name 'base' is not defined