所以我想在同一個模型過濾器中使用__unaccent
和__search
,但是當我這樣做時收到一個錯誤。我試圖使用術語「口袋妖怪」一詞,「神奇寶貝」相匹配,使過濾器(注意「E」)Django結合__unaccent和__search查找
Game.objects.filter(title__unaccent__icontains="Pokemon")
工作正常,但是當我使用Game.objects.filter(title__unaccent__search="Pokemon)
,我得到以下錯誤:
ProgrammingError at /autocomplete-games/ function unaccent(tsquery)
does not exist LINE 1: ...ALESCE(UNACCENT("main_game"."title"), '')) @@ (UNACCENT(p... ^HINT: No function matches the given name and argument types. You might need to add explicit type casts.
我使用:
的Python 3.5
Django的1.10
的PostgreSQL(安裝unaccent擴展)
它看起來像'__search'不會被棄用,而事實上支持PostgreSQL的,按該文檔在這裏:HTTPS: //docs.djangoproject.com/en/1.10/topics/db/search/#postgresql-support - 任何想法爲什麼文檔自相矛盾? – Hybrid
Ow,我看,看起來他們已經不推薦使用mysql搜索,並在同一版本中引入了postgres中的一個:)。我會看看這個,並會告訴你,如果我發現任何東西。 –
解釋它!如果您可以向我展示定製解決方案,我將非常感激並樂意獎勵賞金 – Hybrid