Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Haystack:&x27;非类型';对象没有属性'_默认管理器';_Django_Django Haystack_Django 1.9 - Fatal编程技术网

Django Haystack:&x27;非类型';对象没有属性'_默认管理器';

Django Haystack:&x27;非类型';对象没有属性'_默认管理器';,django,django-haystack,django-1.9,Django,Django Haystack,Django 1.9,我正在尝试将haystack搜索添加到my base.html,以便在我的网站上全局包含它。但当我提交搜索时,它会出错 我得到: Django Haystack:“非类型”对象没有属性“\u默认值\u管理器” 我已将其添加到已安装的应用程序和我的URL.py/manage.py重建索引运行正常 models.py: class Site(models.Model): site_name = models.CharField(max_length=100, blank=False, nul

我正在尝试将haystack搜索添加到my base.html,以便在我的网站上全局包含它。但当我提交搜索时,它会出错

我得到:

Django Haystack:“非类型”对象没有属性“\u默认值\u管理器”

我已将其添加到已安装的应用程序和我的URL.py/manage.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:

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:

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

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

更新:


我注意到,如果我降级到DJango 1.8。它起作用了。django的最新版本是否存在问题?

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


Haystack中添加了对Django 1.9的支持,Haystack中添加了对Django 1.10的支持。

我通过从github安装最新版本(目前为2.5.dev0)解决了这个问题:


您可以从github安装最新版本(如信号应答),但使用pip:

pip uninstall django-haystack
pip install -e git+https://github.com/django-haystack/django-haystack.git#egg=django-haystack
也可以工作(最新的pip):
pip安装git+https://github.com/django-haystack/django-haystack.git
pip uninstall django-haystack
pip install -e git+https://github.com/django-haystack/django-haystack.git#egg=django-haystack