次のクエリでフィルタリングしています
list = AboutMe.objects.order_by('MyLinkedInLastName').filter(Q(MyGender__contains=Gender1))
しかし、ユニコード文字列を使用するとうまくいかないようです。説明させてください。テーブルでは、データ フィールドは次のように格納されます[u'_M', u'_F']
。また、別のレコードの行とフィールドを取得すると、たとえば [u'_M'] のようになります。これをテキストに削除すると、つまり [] を削除して表示すると、u'_M' が得られ、これをフィルターで Gender1 として使用します。今、これはうまくいかないようです。ただし、「_M」をフィルターにハードコーディングすると機能します。何が起こっているのかわかりません - ここで何らかの暗黙の変換が行われていますか?
Gender1 を取得しますGender1 = GenderField.split()[0].strip('[],')
ただし、これは機能するようです
list = AboutMe.objects.order_by('MyLinkedInLastName').filter(Q(MyGender__contains='_M'))
ところで、ここでの目的のためにクエリを単純化しました。エンコーディングの問題のようです。これをうまく確実に機能させる最善の方法は何ですか?