[解決済み] Django なぜいくつかのモデルフィールドは互いに衝突するのですか?
2022-04-21 08:38:45
質問
ユーザーへのリンクを2つ持つオブジェクトを作りたい。例えば
class GameClaim(models.Model):
target = models.ForeignKey(User)
claimer = models.ForeignKey(User)
isAccepted = models.BooleanField()
が、サーバーを動かすと以下のようなエラーが出ます。
-
フィールド 'target' のアクセサーは、関連するフィールド 'User.gameclaim_set' と衝突しています。target'の定義にrelated_name引数を追加してください。
-
<ブロッククオート
フィールド 'claimer' のアクセサーは、関連するフィールド 'User.gameclaim_set' と衝突しています。claimer'の定義にrelated_name引数を追加してください。
なぜエラーが出るのか、どうすれば直るのか、説明してください。
解決方法を教えてください。
Userに対する外部キーが2つあります。Django は自動的に User から GameClaim に戻る逆リレーションを作成しますが、これは通常
gameclaim_set
. しかし、2つのFKを持っているので、2つのFKを持つことになります。
gameclaim_set
属性がありますが、これは明らかに不可能です。ですから、 Django に逆リレーションにどのような名前を使うかを指示する必要があります。
を使用します。
related_name
属性を使用します。
class GameClaim(models.Model):
target = models.ForeignKey(User, related_name='gameclaim_targets')
claimer = models.ForeignKey(User, related_name='gameclaim_users')
isAccepted = models.BooleanField()
関連
-
Pythonの非常に便利な2つのデコレーターを解説
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Python Decorator 練習問題
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
ピロウズ画像色処理の具体的な活用方法
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】ValueError: xとyは同じサイズでなければならない