【Dango】ERRORS: users.User.〇:(fields.E304)Reverse accessor for 'User.〇 '
2020.08.09 /
この記事は、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モデルを使います、という設定です。
これがなかったために、今回のエラーが発生しておりました。
本当に初歩中の初歩ですね。
このエラーに遭遇してしまった方が、私のこの記事で無事解決することを願います。