Django-Haystack:'NoneType'对象没有属性'_default_manager' [英] Django-Haystack: 'NoneType' object has no attribute '_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屋!