0

次のコード スニペットがあります。

profiles_list = Profile.objects.filter(
    company=request.user.company,
)
search_query = None
search_key = None
if request.method == 'POST':
    search_key = request.POST.get('skey')
    search_query = request.POST.get('squery', None)
    profiles_list = profiles_list.filter(
        **{'%s__contains' % search_key:search_query}
    )

SQLite データベースを備えたローカル開発マシンで、search_query を入力すると、たとえば「Owal」と入力すると、search_key に「Owal」が含まれているレコードが返されるため、たとえば「Kowalski」が表示されます。

MySQL を使用して実稼働サーバーで試しましたが、機能しません。なぜなのかご存知ですか?

4

1 に答える 1

1

Djangoのドキュメントから:

SQLite は、大文字と小文字を区別する LIKE ステートメントをサポートしていません。SQLite の icontains のような機能が含まれています。詳細については、データベース ノートを参照してください。

提案:%s__icontains代わりに使用してください。

于 2013-07-11T13:42:33.620 に答える