Django-Haystack:'NoneType'对象没有属性'_default_manager' [英] Django-Haystack: 'NoneType' object has no attribute '_default_manager'

查看:159
本文介绍了Django-Haystack:'NoneType'对象没有属性'_default_manager'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试添加一个干草堆搜索到我的base.html以将其全局包含在我的网站上。当我提交搜索时,它会出错

I am trying to add a haystack search to my base.html to include it globally on my site. It errors though when i submit a search

我得到:


Django -Haystack:'NoneType'对象没有属性'_default_manager'

Django-Haystack: 'NoneType' object has no attribute '_default_manager'

我已将其添加到INSTALLED_APPS和我的urls.py。 ./manage.py rebuild_index运行正常。

I have added it to INSTALLED_APPS and my urls.py. ./manage.py rebuild_index runs fine.

models.py:

models.py:

class Site(models.Model):
    site_name = models.CharField(max_length=100, blank=False, null=False)
    site_manager = models.CharField(max_length=100, blank=False, null=False)
    address_1 = models.CharField(max_length=100, blank=False, null=False)
    address_2 = models.CharField(max_length=100, blank=True, null=True)
    address_3 = models.CharField(max_length=100, blank=True, null=True)
    town_city = models.CharField(max_length=100, verbose_name='Town/City')
    county = models.CharField(max_length=100, blank=False, null=False)
    postcode = models.CharField(max_length=100, blank=False, null=False)
    region = models.CharField(max_length=100, blank=True, null=True)
    tel = models.CharField(max_length=100, blank=False, null=False)
    email = models.EmailField(max_length=100, blank=False, null=False)

    creation = models.DateField(auto_now_add=True)
    last_modified = models.DateField(auto_now=True)

    def __unicode__(self):
        return self.site_name

SiteIndex.py:

SiteIndex.py:

class SiteIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    site_name = indexes.CharField(model_attr='site_name')
    site_manager = indexes.CharField(model_attr='site_manager')
    address_1 = indexes.CharField(model_attr='address_1')
    address_2 = indexes.CharField(model_attr='address_2')
    address_3 = indexes.CharField(model_attr='address_3')
    town_city = indexes.CharField(model_attr='town_city')
    county = indexes.CharField(model_attr='county')
    postcode = indexes.CharField(model_attr='postcode')
    region = indexes.CharField(model_attr='region')
    tel = indexes.CharField(model_attr='tel')
    email = indexes.CharField(model_attr='email')
    creation = indexes.DateField(model_attr='creation')
    last_modified = indexes.DateField(model_attr='last_modified')

    def get_model(self):
        return Site

    def index_queryset(self, using=None):
        return self.get_model().objects.all()

site_text.txt:

site_text.txt:

{{ object.site_name }}
{{ object.site_manager }}
# ect

base.html

base.html

<form action="/search/" method="get">
     <input type="text" name="q">
     <input type="submit" value="Search">
</form>

更新:

我注意到如果我降级到DJango 1.8。有用。是否有更多最新版本的django的问题?

I have noticed that, if i downgrade to DJango 1.8. It works. Is there an issue with more uptodate versions of django?

推荐答案

错误是因为您的Haystack版本不支持您的Django版本。你需要升级你的django-haystack版本,如果你想使用Django 1.9 +

The error is because your version of Haystack does not support your Django version. You need to upgrade your version of django-haystack if you want to use Django 1.9+

支持Django 1.9被添加到Haystack 2.5 ,并且添加了对Django 1.10的支持干草堆 2.5.1

Support for Django 1.9 was added in Haystack 2.5 and support for Django 1.10 was added in Haystack 2.5.1.

这篇关于Django-Haystack:'NoneType'对象没有属性'_default_manager'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆