【Dango】ERRORS: users.User.〇:(fields.E304)Reverse accessor for 'User.〇 '

2020.08.09 /

【Dango】ERRORS: users.User.〇:(fields.E304)Reverse accessor for 'User.〇 '

この記事は、DjangoでWebアプリケーションを作成している方を対象としております。

PythonのWebワークフレームであるDjangoで以下エラーが発生した場合の対処方法について解説します。

ERRORS:
auth.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'User.groups'.
        HINT: Add or change a related_name argument to the definition for 'User.groups' or 'User.groups'.
auth.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
        HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'User.user_permissions'.
users.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'User.groups'.
        HINT: Add or change a related_name argument to the definition for 'User.groups' or 'User.groups'.
users.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
        HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'User.user_permissions'.

エラー発生のタイミング

DjangoでWebアプリケーションを作成し、ログイン機能などを持たせる場合はUserモデルを使用しますよね。

ここでデフォルトのUserモデルではなく、別アプリケーションでカスタマイズしたカスタムユーザーモデルを使用した際に、私の場合ですが上記のエラーが表示されました。
※デフォルトのUserモデルをそのまま使うことは公式で推奨されていないので、カスタマイズしたカスタムユーザーモデルを使うのがいいです

ではなぜこのエラーが発生したのか?
ほんとにただの単純なミスでした。

けど私のようにこのエラーが発生してしまった人は少なからずいるはず!!

エラーの原因

エラーの原因は、settings.pyに以下の一文が入っていなかったからです。

AUTH_USER_MODEL = 'users.User'

これは認証のユーザーモデルとして、カスタマイズユーザーモデルが定義してある、usersアプリケーション内のUserモデルを使います、という設定です。

これがなかったために、今回のエラーが発生しておりました。

本当に初歩中の初歩ですね。

このエラーに遭遇してしまった方が、私のこの記事で無事解決することを願います。