很抱歉这不是编程问题,但是当我试图反省我的类对象时,这引起了我的注意。
我找到了这个
{'user_id': 1, '_state': <django.db.models.base.ModelState object at 0x10ac2a750>, 'id': 2, 'playlist_id': 8}
有什么作用_state
和作用是什么ModelState
?
很抱歉这不是编程问题,但是当我试图反省我的类对象时,这引起了我的注意。
我找到了这个
{'user_id': 1, '_state': <django.db.models.base.ModelState object at 0x10ac2a750>, 'id': 2, 'playlist_id': 8}
有什么作用_state
和作用是什么ModelState
?
从 Django 源代码中,_state是在每个模型实例中定义的实例变量,该实例ModelState
定义为:
class ModelState(object):
"""
A class for storing instance state
"""
def __init__(self, db=None):
self.db = db
# If true, uniqueness validation checks will consider this a new, as-yet-unsaved object.
# Necessary for correct validation of new instances of objects with explicit (non-auto) PKs.
# This impacts validation only; it has no effect on the actual save.
self.adding = True
所以基本上这个实例变量是用来知道Model
实例是否已经被写入一个db
(知道Django支持多个db后端)并保存db
使用的,这个实例变量属性在保存模型实例adding
后设置为false ,它主要使用(如上面代码中的注释)用于验证主键是否是唯一的。