【问题标题】:When is from_db_value called in Django 1.8?Django 1.8 中何时调用 from_db_value?
【发布时间】:2015-04-21 23:37:50
【问题描述】:

在 Django 1.8 发行说明中,它提到 Django Fields 不再使用 SubfieldBase,并已将 to_python 赋值调用替换为 from_db_value

文档还指出,只要从数据库加载数据,就会调用 from_db_value

我的问题是,如果我直接读/写数据库(即使用 cursor.execute()),是否会调用 from_db_value?我最初的尝试和直觉说不,但我只是想确定一下。

【问题讨论】:

    标签: python django django-1.8


    【解决方案1】:

    The Django Documentation for Executing custom SQL directly

    有时甚至 Manager.raw() 还不够:您可能需要执行未完全映射到模型的查询,或直接执行 UPDATE、INSERT 或 DELETE 查询。

    在这些情况下,您始终可以直接访问数据库,完全绕过模型层。

    以上声明使用cursor.execute() 将完全绕过模型逻辑,返回原始行结果。

    如果您想执行原始查询并返回模型对象,请参阅the Django Documentation on Performing raw queries

    raw() 管理器方法可用于执行返回模型实例的原始 SQL 查询:

    for p in Person.objects.raw('SELECT * FROM myapp_person'):
        print(p)
    
    >>> John Smith
    >>> Jane Jones
    

    【讨论】:

      猜你喜欢
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 2016-06-26
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2015-01-07
      相关资源
      最近更新 更多