ホームページ > バックエンド開発 > Python チュートリアル > 「関連名」は Django のManyToManyField とForeignKey の関係をどのように強化しますか?

「関連名」は Django のManyToManyField とForeignKey の関係をどのように強化しますか?

Susan Sarandon
リリース: 2024-12-13 11:42:12
オリジナル
798 人が閲覧しました

How Does `related_name` Enhance Django's ManyToManyField and ForeignKey Relationships?

Django のManyToManyField フィールドおよびForeignKey フィールドの関連名

Django フレームワークは堅牢な ORM (オブジェクト リレーショナル マッピング) システムを提供し、次のオブジェクトとの便利な対話を可能にします。データベース。 Django の ORM の 2 つの重要なフィールド タイプは、ManyToManyField とForeignKey です。

Associated_Name 引数の目的

これらのフィールドの 1 つの重要な側面は、relation_name 引数です。これは、関連モデルから現在のモデルに戻る逆方向の関係の名前を指定します。デフォルトでは、Django は命名規則「[関連モデル名]_set」を使用して逆方向の関係名を自動的に割り当てます。ただし、relational_name 引数を使用すると、この名前をカスタマイズできます。

ManyToManyField での使用法

例として次のコードを考えてみましょう。

class Map(db.Model):
    members = models.ManyToManyField(User, related_name='maps',
                                     verbose_name=_('members'))
ログイン後にコピー

このコードでは、relation_name='maps' は、User モデルでの逆の関係名を指定します。マップ モデルは「マップ」になります。

Associated_Name をカスタマイズする利点

relation_name をカスタマイズすると、次のような利点があります。

  • 改善されました読みやすさ: User.maps 構文は、User.maps 構文よりも簡潔で読みやすいです。 User.map_set.all().
  • よりクリーンなクエリ: current_user.maps.all() を使用すると、current_user に関連するすべての Map インスタンスを取得でき、コードが読みやすく保守しやすくなります。
  • コードの再利用性の向上: 関連名をカスタマイズすると、一貫した命名規則が可能になります異なるモデル間でコードの再利用性とコラボレーションを強化します。

後方関係の無効化

後方関係の作成を完全に無効にしたい場合は、次のように設定できます。関連名=' '。このオプションは、関連モデルへの逆アクセスが必要ない場合に便利です。

以上が「関連名」は Django のManyToManyField とForeignKey の関係をどのように強化しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート