Tengo instancias de modelo de evento que pueden pertenecer a una o más instancias de modelo de organización. Implementé haystack 2.0.0 para indexar todos mis eventos. Aquí hay un índice de búsqueda de ejemplo.Django Haystack: consulta de filtro basada en varios elementos de una lista.
class EventIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
organization_slug = indexes.CharField(model_attr='organization__slug',
weight=5.0)
organization_name = indexes.CharField(model_attr='organization__name',
weight=5.0)
name = indexes.CharField(model_attr='name', weight=10.0)
....
def get_model(self):
return Event
def index_queryset(self):
return Event.objects.filter()
Mi pregunta es ¿cómo construir una consulta que filtra SearchQuerySet Eventos en base a una o varias organizaciones. Por ejemplo, quiero encontrar todos los eventos que pertenecen a "orgnization1" y "organización3" (donde la lista de organizaciones puede ser de cualquier longitud larga)
Como Django consulta podría ser algo como esto:
Event.objects.filter(organization__in=[orgnization1, organization3]).filter(...)
¿Cómo puedo traducir esto a una consulta de pajar? Este es mi intento, pero no se sabe muy bien lo que estoy haciendo ...
organization_list = [organization1.slug, organization2.slug]
SearchQuerySet().filter_or(organization__contains=organization_list)
Aquí es un ejemplo de cómo se ven mis modelos:
class Event(models.Model):
name = models.CharField(max_length=64)
organization = models.ForeignKey('mymodule.Organization')
...
class Organization(models.Model):
slug = models.SlugField(max_length=64)
name = models.CharField(max_length=64)
...
Cualquier ayuda es muy apreciada.
me di cuenta que es bastante antiguo, pero se puede .Filter (organization_slug__in = organization_list) – Nagyman
código de Niza: D, gracias –