私はget_or_create
コールでicontains
を使用して予期せぬ結果を得ています。Django get_or_create with icontains
次の例ください:なぜこれが空白の名前ではなく、「ベアーズ」とチームを作成ん
>>>team_name = "Bears"
>>>Team.objects.get(name__icontains=team_name) # returns DoesNotExist as expected
>>>team, created = Team.objects.get_or_create(name__icontains=team_name)
>>>print(created) # Prints True as expected
>>>print(team.name) # Prints an empty string!
を?私がget_or_create
を使用している理由は、後のユーザーが"BearS"
のようなものを投稿した場合、正しいチームを取得したいと思います。間違った大文字を含む重複チームを作成しないようにします。
良い点... get_or_create'は 'icontains'を許可していませんでした'ことを認識していませんでした。また、「ゴールデンベア」と呼ばれる別のチームが存在する場合のミスを避けるために、「icontains」の代わりに「iexact」を使用しました。 – YPCrumble