python - El valor booleano de SQLAlchemy es Ninguno
pyramid (3)
Debe establecer un valor predeterminado; de lo contrario, se utiliza None / NULL:
is_active = Column(Boolean, unique=False, default=True)
Quería hacer esto en __init__
pero usó is_active = True
(una variable local) en lugar de self.is_active = True
.
Tengo esta tabla en mi aplicación Pyramid
class User(Base):
__tablename__ = ''users''
id = Column(Integer, primary_key=True)
.....
is_active = Column(Boolean, unique=False)
def __init__(self, name, raw_password):
is_active = True
Cuando hice mi prueba, dijo que is_active
is None.
def test_register_user(self):
user = User(''user1'', ''1234'')
self.sess.add(user)
self.sess.flush()
#print user
#self.assertTrue(user.is_active, True)
user_db_record = self.sess.query(User).filter_by(name=user.name).first()
self.assertEqual(user_db_record.is_active, True)
Desde mi registro de integración que veo cuando estamos creando la fila, is_active
se establece en Ninguno. ¿Por qué?
Si está usando Flask-SQLAlchemy, puede usar este comando para crear un servidor por defecto.
from sqlalchemy.sql import expression
active = db.Column(db.Boolean, server_default=expression.true(), nullable=False)
Esto creará un valor predeterminado en la base de datos para que cualquiera pueda escribir en él y la base de datos tendrá el valor predeterminado.
is_active = Column(Boolean, server_default=''t'', default=True)