2010-01-05 43 views
7

我有下面顯示的餐廳和評論模型。評論模型有一個ForeignKey給餐廳。如何在部分餐廳字段和評論模型的評論字段中執行搜索,該模型返回Restaurant實例列表?用django-haystack在幾張桌子上搜索

感謝

class Restaurant(models.Model): 

    name = models.CharField(max_length=100) 
    country=models.ForeignKey(Country) 
    city=models.ForeignKey(City) 
    street=models.CharField(max_length=100) 
    street_number=models.PositiveSmallIntegerField() 
    postal_code=models.PositiveIntegerField(blank=True, null=True) 
    slug = models.SlugField(unique=True) 


class Comment(models.Model): 

    user = models.ForeignKey(User) 
    restaurant = models.ForeignKey(Restaurant) 
    submit_date = models.DateTimeField(blank = True, null = False) 
    comment = models.TextField() 

回答

3

我想你應該閱讀說明書:http://django-haystack.readthedocs.org/en/latest/tutorial.html

看多值:

class RestaurantIndex(indexes.SearchIndex): 
    comments = indexes.MultiValueField() 
    def prepare_comments(self, obj): 
     return [a for a in obj.comment_set.all()] 
+0

你可以搜索一下多值字段,並與restaurat模型comment_set屬性使用。 – diegueus9 2010-01-05 15:35:05

+0

謝謝。我實際上閱讀了手冊,但不知道如何在我的RestaurantIndex中添加註釋。你的意思是在我的RestaurantIndex中使用: comment = indexes.CharField(model_attr ='comment_set')?如果是這樣,我怎樣才能指定評論模型的哪些字段必須被索引? – jul 2010-01-05 17:45:49

+0

不,我不能找到正確的鏈接,但我的意思是這樣: 類RestaurantIndex(indexes.SearchIndex): 評論= indexes.indexes.MultiValueField() 高清prepare_comments(個體經營,OBJ): 回報[一對於obj.comment_set.all()中的一個] – diegueus9 2010-01-05 18:24:29

相關問題