2010-01-05 41 views
7

Tôi đã có mô hình Nhà hàng và Nhận xét được hiển thị bên dưới. Mô hình Comment có ForeignKey to Restaurant. Làm cách nào tôi có thể thực hiện tìm kiếm trong một số trường Nhà hàng và trong trường nhận xét của mô hình Nhận xét trả về danh sách các phiên bản Nhà hàng?Tìm kiếm trong một số bảng với django-haystack

Cảm ơn

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() 

Trả lời

3

Tôi nghĩ bạn nên đọc hướng dẫn: http://django-haystack.readthedocs.org/en/latest/tutorial.html

nhìn cho multivalue:

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

bạn có thể tìm kiếm về lĩnh vực MultiValue và sử dụng nó với comment_set thuộc tính trong mô hình restaurat . – diegueus9

+0

Cảm ơn. Tôi thực sự đọc hướng dẫn, nhưng không biết làm thế nào để thêm các ý kiến ​​trong RestaurantIndex của tôi. Bạn có nghĩa là sử dụng: bình luận = indexes.CharField (model_attr = 'comment_set') trong RestaurantIndex của tôi? Nếu vậy, làm cách nào tôi có thể chỉ định trường nào của mô hình Nhận xét phải được lập chỉ mục? – jul

+0

Không, tôi không thể tìm thấy liên kết đúng nhưng tôi có nghĩa là một cái gì đó như: lớp RestaurantIndex (indexes.SearchIndex): comments = indexes.indexes.MultiValueField() prepare_comments def (tự, obj): trở lại [a cho một trong obj.comment_set.all()] – diegueus9

Các vấn đề liên quan