2014-03-06 5 views
0

나는 이상한 오류가 있습니다. 내가 manytomany 필드 에 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

스택 오버플로에 오신 것을 환영합니다! 태그를 선택할 때 나타나는 유용한 설명을 반드시 읽으십시오. – Charles

답변

1

를 당신은 사용되는 및 인덱싱 시간에 "prepare_"루틴을 방지 "model_attr"매개 변수를 제공하는 것이 '필리스트'와 '편집자'에게 곧바로 갈 것입니다.
코드를 제거하여 해당 필드의 색인을 생성하는 코드를 사용하십시오.

관련 문제