2014-03-06 141 views
0

我得到了他奇怪的錯誤。儘管我已經把all()呼叫的多對多場 我仍然得到這個惱人的錯誤..haystack django TypeError:'ManyRelatedManager'對象不可迭代

class GrantIndex(): 
    pilist = indexes.MultiValueField(model_attr='pilist',faceted=False) #then we do iteration in template. if we set this as charField, we do prepare_pilist here! 
    copilist = indexes.MultiValueField(model_attr='copilist',faceted=False) 
    # content_auto=indexes.EdgeNgramField(model_attr='title') 

    def get_updated_field(self): 
     return "lastupdated" 

    def get_model(self): 
     return Grant 

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

    def prepare_pi(self, obj):  
     return "%s %s %s" %(obj.pi.first_name,obj.pi.last_name,obj.pi.professor.university,obj.pi.professor.academic.interests,obj.pi.professor.academic.publications) 

    def prepare_pilist(self, obj): 
     return [(p.firstname,p.lastname,p.email,p.university,p.academic.interests,p.academic.publications) for p in obj.pilist.all()]  


    def prepare_copilist(self, obj): 
     return [(p.firstname,p.lastname,p.email,p.university,p.academic.interests,p.academic.publications) for p in obj.copilist.all()] 
+1

歡迎來到Stack Overflow!請務必閱讀選擇標籤時出現的有用說明。 – Charles

回答

1

您提供「model_attr」參數,防止了「prepare_」程序被使用,並在索引時間它我會直接去'pilist'和'copilist'。
嘗試刪除它們,以便將代碼用於索引這些字段。