Django モデルの逆関係: relationship_name の探索
Django モデルでManyToManyField およびForeignKey の関係を確立する場合、relation_name 引数は重要な役割を果たします。その目的を理解すると、開発者はモデル間の逆関係をカスタマイズできるようになり、コードの明確さと効率が向上します。
relation_name の目的
relation_name 属性は、逆関係に割り当てられる名前を定義します。関係の向こう側の関係。デフォルトでは、Django はモデルの名前と「_set」サフィックスを使用して名前を自動的に生成します。ただし、カスタム値を指定すると、Django のデフォルトの命名規則が置き換えられます。
使用例
次のモデル定義を考えてみましょう。
class Map(db.Model): members = models.ManyToManyField(User, related_name='maps', verbose_name=_('members'))
この例では、relation_name='maps' は、User モデルから Map モデルへの逆のリレーションに名前が付けられることを指定します。 「地図」。これは、デフォルト名「user_set」を使用する代わりに、ユーザーが「maps」属性を持つことを意味します。
relation_name をカスタマイズする利点
relation_name をカスタマイズすると、次のような利点があります。
逆方向の関係が作成されないようにする関係を定義する場合、ユーザーはフィールドを定義するときに、relative_name を「」に設定できます。これは、一方向の関係のみが必要な場合に便利です。
以上がDjango の「relative_name」パラメータはモデル内の関係をどのように制御しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。