gpt4 book ai didi

python - sqlalchemy mixin、外键和关系

转载 作者:太空狗 更新时间:2023-10-30 01:23:45 25 4
gpt4 key购买 nike

我在创建一个我计划用于一组 sqlalchemy 声明类的简单 mixin 时遇到了问题。基本思想是我想要创建/修改时间戳和存储在多个表中的创建/修改用户。 mixin 位于其自己的文件 (global_mixins.py) 中,并且该类被导入到需要 mixin 的每个模型文件中。当我运行数据导入时,我在代码下方收到错误。

class TimeUserMixin(object):
create_time = Column(DateTime,default=datetime.datetime.now,nullable=False)
modify_time = Column(DateTime,default=datetime.datetime.now,
onupdate=datetime.datetime.now,nullable=False)

@declared_attr
def create_user_id(cls):
return Column(Integer,ForeignKey('tg_user.user_id'),
default=cls.get_user_id,nullable=False)

@declared_attr
def modify_user_id(cls):
return Column(Integer,ForeignKey('tg_user.user_id'),
default=cls.get_user_id,onupdate=cls.get_user_id,nullable=False)

@declared_attr
def create_user(cls):
return relation('User',primaryjoin='%s.create_user_id == User.user_id'%cls.__name__)

@declared_attr
def modify_user(cls):
return relation('User',primaryjoin='%s.modify_user_id == User.user_id'%cls.__name__)

@classmethod
def get_user_id(cls):
#will eventually return user id if logged in or a generic system user.
return 1

Error(DETAIL: Key (create_user_id)=(1) is not present in table "tg_user".)

最佳答案

这是操作顺序问题。我没有仔细阅读输出。基本上我试图在创建任何用户之前分配一个用户。

关于python - sqlalchemy mixin、外键和关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9183012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com