[英]Django: How is a RelatedManager object instantiated?
假设我有两个models
: Book
和Author
。
如果我现在添加了一个ForeignKey field
,以Book
连它Author
,并实例化一个Book object
-那么我也可以访问该Book object
通过Author object
(通过它连接到book_set
,如果没有related_name
指定)。 根据我对阅读文档的了解,此访问是通过Author object
上的Related Manager object
提供的。
何时创建RelatedManager-object
? 还是它已经是每个Author object
object
上的一个Author object
,但是在实例化新Book
时已连接到每个Book对象? 如果是这样,它如何连接到Book object?
据我所知,文档中没有提到这一点。
在文档中:
如果模型具有ForeignKey,则外键模型的实例将有权访问Manager,该Manager返回第一个模型的所有实例。
您可以询问Django,它将为您提供一些信息:
>>> Author.book_set
<django.db.models.fields.related_descriptors.ReverseManyToOneDescriptor object at 0x7f41aa1920f0>
>>> Author.objects.first().book_set
<django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager.<locals>.RelatedManager object at 0x7f41a9e46828>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.