在Django haystack搜索结果中显示外键值

时间:2014-07-24 14:45:30

标签: python django django-haystack

我是django和haystack的新手。任何人都可以帮我这个代码。 我在models.py文件中有以下模型

class UserProfile(models.Model):
    street_address = models.CharField(max_length=100, blank=False, null=False)
    city = models.CharField(max_length=100, blank=False, null=False)
    zip_code = models.PositiveIntegerField(blank=False, null=True)

class UserProfessional(models.Model):
    userprofile = models.ForeignKey(UserProfile, unique=True, related_name = 'user_professionals')
    company = models.CharField(max_length=200, blank=False, null=False)
    professional_type = models.CharField(max_length=50, choices=PROFESSIONAL_TYPE)
    bio_exp = models.CharField(max_length=300)

搜索条件为zip_code,city和state。所以我们可以通过邮政编码进行搜索,但结果应该显示公司和bio_exp。

1 个答案:

答案 0 :(得分:1)

我希望你创建了一个SearchIndex,它将索引UserProfessional,而不是UserProfile。

class UserProfessionalIndex(indexes.SearchIndex, indexes.Indexable):
    userprofile = indexes.CharField(model_attr='userprofile')

    def get_model(self):
        return UserProfessional

并在搜索模板中指定

{{ object.userprofile.zip_code }}
{{ object. bio_exp }} 

现在搜索zip_code和其他参数,您将从UserProfessional和其他字段返回bio_exp。

希望这有帮助。