Domanda

django-taggit , che gestisce l'attaccamento di tag per i tipi di contenuto arbitrarie . Ho importato una grande lista di tag, che contiene molte parole in maiuscolo, così come le parole minuscole.

Ora, io' cercando di ottenere oggetti di un'altra classe che contiene un insieme di tag, ma voglio confrontare insensibilmente caso. Quando faccio questo:

Media.objects.filter(tags__name__in=['tag1', 'tag2'])

oggetti contenenti ad esempio il tag "Tag1" non si trovano, solo quelli con "tag1" o "tag2".

C'è la possibilità in Django ORM fare qualcosa di simile:

Media.objects.filter(tags__name__iin=['tag1', 'tag2'])

che si comporta come "icontains"?

È stato utile?

Soluzione

Non c'è un modo semplice per farlo. Io non sono sicuro al 100%, Si può provare qualcosa di simile per il vostro problema.

from django.models import Q

q = Q()
for tag in tags.split():
    q |= Q(tags__name__iexact=tag)

Media.objects.filter(q)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top