2010-01-05 24 views
7

Tengo los modelos de Restaurante y Comentario que se muestran a continuación. El modelo de comentario tiene una clave externa para el restaurante. ¿Cómo puedo realizar una búsqueda en algunos de los campos de Restaurante y en el campo de comentarios del modelo de Comentarios que devuelve una lista de instancias de Restaurante?Buscando en varias tablas con django-haystack

Gracias

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

Respuesta

3

creo que se debe leer el manual: http://django-haystack.readthedocs.org/en/latest/tutorial.html

mirada de varios valores:

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

se puede buscar información sobre el campo MultiValue y utilizarlo con comment_set atributo en el modelo restaurat . – diegueus9

+0

Gracias. De hecho, leí el manual, pero no sabía cómo agregar los comentarios en mi RestaurantIndex. ¿Quiere decir usar: comment = indexes.CharField (model_attr = 'comment_set') en mi RestaurantIndex? En caso afirmativo, ¿cómo puedo especificar qué campos del modelo de comentarios deben indexarse? – jul

+0

No, no puedo encontrar el enlace correcto pero quiero decir algo como: clase RestaurantIndex (indexes.SearchIndex): comentarios = indexes.indexes.MultiValueField() prepare_comments def (auto, obj): retorno [a para un en obj.comment_set.all()] – diegueus9

Cuestiones relacionadas