3

任意のコンテンツ タイプへのタグの添付を処理するdjango-taggitを使用しています。多くの大文字の単語と小文字の単語を含む大きなタグ リストをインポートしました。

今、一連のタグを含む別のクラスのオブジェクトを取得しようとしていますが、大文字と小文字を区別せずに比較したいと考えています。私がこれを行うとき:

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

たとえば、タグ「Tag1」を含むオブジェクトは見つかりません。「tag1」または「tag2」を持つオブジェクトのみです。

django orm で次のようなことを行う可能性はありますか:

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

「icontains」のように機能しますか?

4

1 に答える 1

3

それを行う簡単な方法はありません。100%確信はありません。問題に対してこのようなことを試すことができます。

from django.models import Q

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

Media.objects.filter(q)
于 2010-10-13T12:59:24.697 に答える