およびフィールドrelated_name
で 引数が役立つのはどのような場合ですか? たとえば、次のコードの場合、 の効果は何ですか?ManyToManyField
ForeignKey
related_name='maps'
class Map(db.Model):
members = models.ManyToManyField(User, related_name='maps',
verbose_name=_('members'))
ベストアンサー1
このrelated_name
属性は、モデルから自分のモデルへの逆リレーションの名前を指定しますUser
。
を指定しない場合、Django は、たとえば というrelated_name
サフィックスが付いたモデル名を使用して を自動的に作成します。_set
User.map_set.all()
たとえば、モデルに を指定すると、は引き続き機能しますが、構文は明らかに少し簡潔で扱いやすくなっています。たとえば、ユーザー オブジェクト がある場合、 を使用して と関係のあるモデルのすべてのインスタンスを取得できます。related_name=maps
User
User.map_set
User.maps.
current_user
current_user.maps.all()
Map
current_user
のDjango ドキュメント詳細はこちらをご覧ください。