假设我有两个 models
:Book
和 Author
.
如果我现在添加一个 ForeignKey field
至 Book
将其连接到 Author
,并实例化一个 Book object
- 那么我也可以访问该 Book object
通过 Author object
它连接到(通过 . book_set
,如果没有指定 related_name
)。根据我阅读文档的理解,此访问是通过 Related Manager object
提供的。在 Author object
.
那是什么时候RelatedManager-object
创建?或者它已经是 object
在每个 Author object
,但在实例化一个新的 Book
时连接到每个 Book 对象?如果是这样,它如何连接到 Book object?
据我所知,文档中没有提到这一点。
在文档中:
If a model has a ForeignKey, instances of the foreign-key model will have access to a Manager that returns all instances of the first model.
最佳答案
你可以问 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>
关于python - Django:RelatedManager 对象是如何实例化的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49525761/