haystack django TypeError:'ManyRelatedManager'对象不可迭代

时间:2014-03-06 00:54:37

标签: django django-haystack

我得到了他的奇怪错误。即使我已经将all()电话放在了许多地方 我仍然得到这个恼人的错误..

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 个答案:

答案 0 :(得分:1)

你提供了“model_attr”参数,它阻止了“prepare_”例程的使用,在索引时它会直接进入“pilist”和“copilist”。 尝试删除它们,以便您使用代码索引这些字段。