1
ASCII検索キーワードを使用して非ASCII文字を含むテキストを検索すると、 't'は 'ṭ'と一致します。Djangoのicontainsクエリで非ASCII文字を含むテキストを検索するには?
Book.objects.filter(title__icontains='prajna')
ASCII検索キーワードを使用して非ASCII文字を含むテキストを検索すると、 't'は 'ṭ'と一致します。Djangoのicontainsクエリで非ASCII文字を含むテキストを検索するには?
Book.objects.filter(title__icontains='prajna')
一つの可能性は別のものを作成することです:サンスクリット語のタイトル「Aṣṭasāhasrikā-般若-經」フィールドtitle
では、私はそれを返すために、次のクエリを希望してBook
オブジェクトを指定して、例えば
、 (b)検索中にascii_title
フィールドのみを使用して検索キーワードから最初に除外キーワードを削除する:
ascii_title
フィールドを使用して検索キーワードから除外キーワードを削除します。あなたは
django.utils.text.slugify()
implementationから
remove_diacritics()
のためのインスピレーションを見つけることができます
class Book(models.Model):
def save(self, *args, **kwargs):
self.ascii_title = remove_diacritics(self.title)
super().save(*args, **kwargs)
Book.objects.filter(ascii_title__icontains=remove_diacritics('prajñā'))
:あなたは、PostgreSQLを使用している場合は
import unicodedata
def remove_diacritics(value):
return unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')
は、別の可能性があります - hereが説明したようにUNACCENT
クエリを使用します。
Book.objects.filter(title__unaccent=remove_diacritics('prajñā'))