当前位置: 首页 > 知识库问答 >
问题:

Django Haystack:异常值:'模块'对象没有属性'get_model'

范承望
2023-03-14

我设置了一个非常简单的项目来尝试使用Whooph引擎的Haystack,主要遵循文档中的示例。我使用pip安装了所有内容,没有版本号,所以我应该有最新的发布版本。

我收到这个错误,我不知道我现在应该做什么,我找不到类似的东西,尽管我已经搜索了谷歌。请帮忙!

项目文件夹结构非常简单,有一个名为cat的应用程序。

    project
    |-cat
    |  |-migrations
    |  |-admin.py, apps.py, models.py, search_indexes.py
    |-templates
    |  |-search
    |     |-indexes
    |     |  |-cat
    |     |     |-cat_text.txt
    |     |-search.html
    |-manage.py, settings.py, urls.py

我得到的错误是:

    Environment:


    Request Method: GET
    Request URL: http://localhost:8000/search/?q=felix&models=cat.cat

    Django Version: 1.9.4
    Python Version: 2.7.10
    Installed Applications:
    ['django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'haystack',
     'cat',]
    Installed Middleware:
    ['django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware']



    Traceback:

    File "/Users/lebouuski/projects/django/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
      149.                     response = self.process_exception_by_middleware(e, request)

    File "/Users/lebouuski/projects/django/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
      147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)

    File "/Users/lebouuski/projects/django/lib/python2.7/site-packages/haystack/views.py" in __call__
      51.         self.results = self.get_results()

    File "/Users/lebouuski/projects/django/lib/python2.7/site-packages/haystack/views.py" in get_results
      91.         return self.form.search()

    File "/Users/lebouuski/projects/django/lib/python2.7/site-packages/haystack/forms.py" in search
      116.         return sqs.models(*self.get_models())

    File "/Users/lebouuski/projects/django/lib/python2.7/site-packages/haystack/forms.py" in get_models
      110.                 search_models.append(models.get_model(*model.split('.')))

    Exception Type: AttributeError at /search/
    Exception Value: 'module' object has no attribute 'get_model'
class Cat(models.Model):
  name = models.CharField(max_length=255)
  birth_date = models.DateField(default=datetime.date.today)
  bio = models.TextField(blank=True)
  created = models.DateTimeField(default=datetime.datetime.now)
  updated = models.DateTimeField(default=datetime.datetime.now)

  def __unicode__(self):
    return self.name

  @models.permalink
  def get_absolute_url(self):
    return ('cat_detail', [], {'id': self.id})
class CatIndex(indexes.BasicSearchIndex, indexes.Indexable):

  def get_model(self):
    return Cat

共有2个答案

丁成弘
2023-03-14

解决方案:将Django从1.9降级到1.8

sudo pip install Django==1.8

这里的动机:链接

楚方伟
2023-03-14

对于其他对此感到困惑的人来说,这都是因为Django 1.9中的一个小变化,其中< code>get_model()方法被移到了< code>django.apps.apps模块中,并且不再可以从< code>django.db中获得

这个问题现在在干草堆社区中得到了解决,因此从他们的GitHub存储库(而不是PyPI)更新到最新版本必须解决它。

下面应该可以解决:

安装githttps://github.com/django-haystack/django-haystack.git

或者您可以按照Sam的建议简单地降级到Django 1.8。您可以在此处找到有关此问题的更多信息

 类似资料:
  • 我正在尝试使用Tensorflow在谷歌云上运行一个培训工作。我试图通过运行以下命令来运行培训。 但是当我运行一个作业时,我得到了以下错误。知道为什么吗?

  • 问题内容: 我正在尝试使用Python下载网站的HTML源代码,但收到此错误。 我在这里遵循指南:http : //www.boddie.org.uk/python/HTML.html 我正在使用Python 3。 问题答案: 这适用于Python2.x。 对于Python 3,请在docs中查看:

  • 变得非常困惑。四处寻找,但找不到任何有用的帮助。我知道错误了 回溯(最近一次调用):文件“/Users/Andrew/Desktop/password.py”,第2行,格式为cgi。Fieldstorage()AttributeError:“模块”对象没有属性“Fieldstorage”

  • 问题内容: 我正在尝试运行一个简单的代码,并且在Canopy中安装了matplotlib和numpy的所有依赖项。还是我出错了。 错误: 我已经为numpy和matplotlib安装了依赖项:1.)libsvm-3.17.win64-py2.7 2.)pyparsing-2.0.3-1.win64-py2.7 3.)python-dateutil-2.4.2-2。 win64-py2.7 4.)p

  • 问题内容: 我只是在做一个OpenCV中特征检测的例子。该示例如下所示。它给我以下错误 模块”对象没有属性“ drawMatches” 我已经检查了OpenCV文档,但不确定为什么会出现此错误。有人知道为什么吗? 错误: 问题答案: 该函数不是Python界面的一部分。 正如您在docs中看到的那样,它仅在当前定义。 摘录自文档: 如果该函数具有Python接口,则会发现以下内容: 编辑 实际上,

  • 问题内容: 我正在尝试使用Selenium WebDriver生成Firefox实例。过去,在安装geckodriver并确保它位于我的PATH之后,我能够执行此操作。但是,我切换到使用phantomjs已有大约一年的时间,直到最近才决定再次试用Firefox。不幸的是,现在当我尝试实例化webdriver.Firefox对象时,我得到了AttributeError,称该对象没有称为“ Firef