对 on和fieldsrelated_name有用的参数是什么?例如,给定以下代码, 的效果是什么?ManyToManyField``ForeignKey``related_name='maps'
related_name
ManyToManyField``ForeignKey``related_name='maps'
class Map(db.Model): members = models.ManyToManyField(User, related_name='maps', verbose_name=_('members'))
该related_name属性指定从User模型到您的模型的反向关系的名称。
User
如果你没有指定 a related_name,Django 会自动使用你的模型名称和后缀创建一个_set,例如User.map_set.all()。
_set
User.map_set.all()
如果您 确实 指定了,例如related_name=maps在User模型上,User.map_set仍然可以工作,但User.maps.语法显然更简洁,更简洁;例如,如果您有一个 user 对象current_user,您可以使用它来获取与 .有关系current_user.maps.all()的模型的所有实例。Map``current_user
related_name=maps
User.map_set
User.maps.
current_user
current_user.maps.all()
Map``current_user
Django 文档有更多详细信息。