1. ホーム
  2. python

[解決済み] related_nameは何に使うのですか?

2022-02-17 01:30:22

質問事項

とは何ですか? related_name 引数は ManyToManyFieldForeignKey のフィールドがありますか?例えば、次のようなコードがあったとして、その効果はどのようなものでしょうか。 related_name='maps' ?

class Map(db.Model):
    members = models.ManyToManyField(User, related_name='maps',
                                     verbose_name=_('members'))

解決方法は?

その related_name 属性は、逆方向の関係の名前を User モデルから自分のモデルに戻すことができます。

を指定しない場合は related_name というサフィックスを付けたモデル名で、Django は自動的にモデル名を作成します。 _set 例えば User.map_set.all() .

もし、あなたが する を指定します。 related_name=maps の上に User モデルを使用します。 User.map_set はまだ機能しますが User.maps. の構文は明らかに少しすっきりしており、煩雑さが軽減されている。 current_user を使用することができます。 current_user.maps.all() のすべてのインスタンスを取得することができます。 Map との関係を持つモデルです。 current_user .

Django ドキュメント が詳しいです。