我有两个管理员和角色表,与第三个表分配(多对多关系)连接,字段为role_id,administrator_id和一些额外的字段created_at和updated_at,我想自动填充:
assignments = db.Table('assignments',db.Column('role_id',db.Integer,db.ForeignKey('roles.id')),db.Column('administrator_id',db.ForeignKey('administrators.id')),db.Column('created_at',db.DateTime,server_default=db.func.Now()),db.Column('updated_at',server_default=db.func.Now(),onupdate=db.func.Now()),db.ForeignKeyConstraint(['administrator_id'],['administrators.id']),db.ForeignKeyConstraint(['role_id'],['roles.id']) ) class Administrator(db.Model,UserMixin): __tablename__ = 'administrators' id = Column(Integer,primary_key=True,server_default=text("nextval('administrators_id_seq'::regclass)")) email = Column(String(255),nullable=False,unique=True,server_default=text("''::character varying")) name = Column(String(255)) surname = Column(String(255)) roles = db.relationship('Role',secondary=assignments,backref=db.backref('users',lazy='dynamic')) class Role(db.Model): __tablename__ = 'roles' id = Column(Integer,server_default=text("nextval('roles_id_seq'::regclass)")) name = Column(String(255))
admin.roles = [role1] db.session.add(admin) db.session.commit()
它打破了以下错误:
IntegrityError: (psycopg2.IntegrityError) null value in column "created_at" violates not-null constraint DETAIL: Failing row contains (1265,19,3,null,null). [sql: 'INSERT INTO assignments (role_id,administrator_id) VALUES (%(role_id)s,%(administrator_id)s)'] [parameters: {'administrator_id': 19,'role_id': 3}]
有没有办法在赋值表中为created_at和updated_at字段设置默认值?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。