作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
django 内部代码使用 _base_manager
而不是 objects
还有_default_manager
我比较习惯用objects
有什么不同?
最佳答案
'objects' 和 '_base_manager' 之间的区别在于您可以用自定义管理器替换 'objects',但无论如何 '_base_manager' 将是默认的 django.db.models.Manager 实例。一般来说,你不应该使用'_base_manager'。有时 Django 本身需要使用 '_base_manager' 来确定它的行为。
from django.db import models
class CommentManager(models.Manager):
pass
class Comment(models.Model):
...
objects = CommentManager()
print(type(Comment.objects)) #<class 'main.models.CommentManager'>
print(type(Comment._default_manager)) #<class 'main.models.CommentManager'>
print(type(Comment._base_manager)) #<class 'django.db.models.manager.Manager'>
class Comment(models.Model):
...
custom_objects = CommentManager()
print(type(Comment._default_manager)) #<class 'main.models.CommentManager'>
print(type(Comment._base_manager)) #<class 'django.db.models.manager.Manager'>
print(type(Comment.objects)) #AttributeError: type object 'Comment' has no attribute 'objects'
关于django,_base_manager 和对象的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427817/
django 内部代码使用 _base_manager而不是 objects 还有_default_manager 我比较习惯用objects 有什么不同? 最佳答案 'objects' 和 '_ba
我是一名优秀的程序员,十分优秀!