python sqlalchemy pyramid

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)