PythonDjangoリバースアクセサーの外部キーの競合解決



Python Django Reverse Accessor Foreign Key Conflict Resolution



基本クラスを継承する2つのDjangoモデルがあります。

- リクエスト



-お問い合わせ

-分析



リクエストには、組み込みユーザーモデルへの2つの外部キーがあります。

create_user = models.ForeignKey(User、related_name = 'requests_created')
assign_user = models.ForeignKey(User、related_name = 'requests_assigned')

何らかの理由でエラーが発生します

'Analysis.assign_user'の逆アクセサーは 'Inquiry.assign_user'の逆アクセサーと競合します。



私が読んだすべてのことは、related_nameを設定することで競合を防ぐことができると言っていますが、それでも同じエラーが発生します。なぜこれが起こるのか誰かが考えることができますか?ありがとうございました!

related_nameは、フィールドが互いに競合しないようにしますが、2つのモデルがあり、各モデルにはこれら2つのフィールドがあります。特定の各モデルの名前を入力する必要があります。特別な文字列置換を行うことができます。

create_user = models.ForeignKey(User、related_name = '%(class)s_requests_created')

補足知識:djangorelated_nameはリバースマッピングを無効にします

公式文書の取り扱い方法:

逆マッピングを無効にするには、related_nameをプラス記号またはプラス記号で終わる文字列に直接割り当てます。

Python Djangoリバースアクセサーの上記の外部キーの競合解決は、エディターによって共有されるすべてのコンテンツです。私はあなたに参照を与えることができ、あなたがそれをサポートできることを願っています。