NameError: имя «база» не определено (поиск стога сена)

Я хотел включить полнотекстовый поиск в свое приложение django. Для этого я использую whoosh-haystack. Когда я включаю whoosh и haystack в свои установленные приложения и выполняю команду ./manage.py, я получаю сообщение об ошибке импорта. Может ли кто-нибудь разобраться с этим.

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

мое соединение со стогом сена:

HAYSTACK_CONNECTIONS = {
'default': {
    'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
    'PATH': os.path.join(base(), 'whoosh_index')
  },
}

мои модели.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 с помощью метода установки django pip следующим образом:

pip install haystack
pip install whoosh

person Talukder Nobin    schedule 24.10.2017    source источник
comment
Вы определили функцию base()?   -  person Abdul Niyas P M    schedule 24.10.2017
comment
Нет, я не понимаю базовую функцию. Пожалуйста, объясните.   -  person Talukder Nobin    schedule 24.10.2017
comment
'ПУТЬ': os.path.join(base(), 'whoosh_index')   -  person Abdul Niyas P M    schedule 24.10.2017
comment
когда я удаляю базу(). я получил эту ошибку .. из соединений импорта стога сена ImportError: невозможно импортировать имя «соединения»   -  person Talukder Nobin    schedule 24.10.2017
comment
Не могли бы вы заменить 'PATH': os.path.join(base(), 'whoosh_index') на 'PATH': os.path.join(os.path.dirname(file), ' whoosh_index')   -  person Abdul Niyas P M    schedule 24.10.2017
comment
пожалуйста, приведите пример ...dirname(file). что включить в замену файла. пожалуйста, приведите пример.   -  person Talukder Nobin    schedule 24.10.2017
comment
django-haystack.readthedocs.io/en/master/tutorial.html# свист   -  person Abdul Niyas P M    schedule 24.10.2017
comment
@ABDULNIYASPM см. stackoverflow.com/editing-help#comment-formatting   -  person ivan_pozdeev    schedule 24.10.2017


Ответы (1)


Трассировка довольно ясна:

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

Это означает, что строка № 80 вашего файла settings.py использует имя (base — очевидно, что это функция), которое не определено. В вашем файле настроек отсутствует импорт или определение функции. Что base должен делать и т. д., мы не знаем (это определенно не встроенная функция и ничего стандартного в файле настроек django), но теперь вам следует это сделать, так как это ваш проект.

person bruno desthuilliers    schedule 24.10.2017