Django:ModelState的作用是什么?

发布于 2021-01-29 16:59:59

抱歉,这不是编程问题,但是当我尝试内省我的类对象时,这引起了我的注意。

我找到了这个

{'user_id': 1, '_state': <django.db.models.base.ModelState object at 0x10ac2a750>, 'id': 2, 'playlist_id': 8}

作用是什么,作用是_state什么ModelState

关注者
0
被浏览
169
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在Django源代码中,_state是在每个Model实例中定义的实例变量,该实例变量的实例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使用的实例变量,该实例变量属性adding保存模型实例后设置为false
    ,并且大多数情况下使用(作为上面代码中的注释),用于验证主键是否唯一



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看