Python 当SqlAlchemy中的列上存在默认设置时,显式将该列的值设置为NULL
我有一个定义如下的表:Python 当SqlAlchemy中的列上存在默认设置时,显式将该列的值设置为NULL,python,sqlalchemy,Python,Sqlalchemy,我有一个定义如下的表: 类事物(基本): __tablename_u=“things” my_field=Column(Text,nullable=True,default=lambda c:“default”) (在我的实际实现中,默认函数更复杂,但我认为说我正在使用函数生成默认值是恰当的。) 在某些情况下,我希望能够将my_字段的值显式设置为NULL。我试过: thing=thing(我的_字段=None) 但是在会话中添加(东西);Session.commit()默认值由函数生成,并写
类事物(基本):
__tablename_u=“things”
my_field=Column(Text,nullable=True,default=lambda c:“default”)
(在我的实际实现中,默认函数更复杂,但我认为说我正在使用函数生成默认值是恰当的。)
在某些情况下,我希望能够将my_字段的值显式设置为NULL
。我试过:
thing=thing(我的_字段=None)
但是在会话中添加(东西);Session.commit()
默认值由函数生成,并写入我的显式None
。是否有一种方法可以在一般情况下使用默认值,但有时会显式地为列设置Null?这是由于SQLAlchemy ORM中的一个怪癖造成的。即使在具有默认值的列上显式将值设置为None
,也会将其视为未设置任何值。您需要使用null
SQL构造来解决这个问题。有关更多详细信息,请参阅
from sqlalchemy import null
thing = Thing(my_field=null())