2015-04-23 32 views
0

剛剛在Whoosh + Haystack上開始。乾草堆+飛快移動的根:錯誤更新<appname>使用默認

我測試了一個測試模型,其索引良好,並給出了結果。但是索引對於第二模型的一些未知的原因(重要的)

這裏失敗是模型

class Sale(models.Model): 
    brand = models.ForeignKey('Brand', related_name='sales_p') 
    outlets = models.ManyToManyField('Outlet', null=True, blank=True, related_name='sales') 
    child_brands = models.ManyToManyField('Brand', null=True, blank=True, related_name='sales_c') 
    child_categories = models.ManyToManyField('Category', null=True, blank=True, related_name='sales_c') 
#collecting subcategories for subcategory sale 
    child_subcategories = models.ManyToManyField('SubCategory', null=True, blank=True,related_name='subcategory') 

該搜索索引是

class SaleIndex(indexes.SearchIndex, indexes.Indexable): 
    text = indexes.CharField(document=True, use_template=True) 
    outlets = indexes.CharField(model_attr='outlets') 
    child_brands = indexes.CharField(model_attr = 'child_brands') 
    child_categories = indexes.CharField(model_attr = 'child_categories') 
    child_subcategories = indexes.CharField(model_attr = 'child_subcategories') 
    content_auto = indexes.CharField(model_attr='brand') 

    def get_model(self): 
     return Sale 

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

    def prep_childbrands(self, object): 
     return [brand.name for brand in self.child_brands.all()] 

沒有其他人在世界似乎曾經面對過這個問題。一般來說對編程來說是新的。有什麼我失蹤,這是顯而易見的?

回溯是否有幫助:

Indexing 84 Sales 
ERROR:root:Error updating website using default 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.4/dist-packages/haystack/management/commands/update_index.py", line 189, in handle_label 
    self.update_backend(label, using) 
    File "/usr/local/lib/python3.4/dist-packages/haystack/management/commands/update_index.py", line 234, in update_backend 
    do_update(backend, index, qs, start, end, total, self.verbosity) 
    File "/usr/local/lib/python3.4/dist-packages/haystack/management/commands/update_index.py", line 89, in do_update 
    backend.update(index, current_qs) 
    File "/usr/local/lib/python3.4/dist-packages/haystack/backends/whoosh_backend.py", line 191, in update 
    doc = index.full_prepare(obj) 
    File "/usr/local/lib/python3.4/dist-packages/haystack/indexes.py", line 207, in full_prepare 
    self.prepared_data = self.prepare(obj) 
    File "/usr/local/lib/python3.4/dist-packages/haystack/indexes.py", line 198, in prepare 
    self.prepared_data[field.index_fieldname] = field.prepare(obj) 
    File "/usr/local/lib/python3.4/dist-packages/haystack/fields.py", line 159, in prepare 
    return self.convert(super(CharField, self).prepare(obj)) 
    File "/usr/local/lib/python3.4/dist-packages/haystack/fields.py", line 106, in prepare 
    return current_object() 
    File "/usr/local/lib/python3.4/dist-packages/django/db/models/fields/related.py", line 843, in __call__ 
    manager = getattr(self.model, kwargs.pop('manager')) 
KeyError: 'manager' 
+0

引用了很多擺弄我可以說,誤差僅爲拋出後字段條目。如果我只嘗試索引foreignkey字段(上面命名的品牌),那麼索引似乎正確進行。 – Kunstructor

回答