python - Flask Sql 炼金术关系
问题描述
我无法在 Flask SQL Alchemy 中建立一对一的关系。在终端中运行命令后立即flask-init
出现以下错误:
sqlalchemy.exc.NoForeignKeysError:无法确定关系 TimeZones.users 上的父/子表之间的连接条件 - 没有链接这些表的外键。确保引用列与 ForeignKey 或 ForeignKeyConstraint 相关联,或指定“primaryjoin”表达式。
我有三(3)张桌子。
- 语言
- 时区
- 用户
表用户具有 Languages 表和 TimeZones 表的主键。
以下是所有三个表的代码:
1. 语言
from modules.user_management.user_model import *
class Languages(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
language_culture = db.Column(db.String(50), nullable=False)
language_rtl = db.Column(db.Integer, nullable=False)
language_code = db.Column(db.String(50))
is_published = db.Column(db.Integer)
language_resources = db.relationship('LanguageResources', backref=db.backref('languages', lazy=True))
users = db.relationship('User', backref=db.backref('languages', lazy=True))
2. 时区
from modules.user_management.user_model import *
class TimeZones(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
time_zone = db.Column(db.String(50), unique=True, nullable=False)
users = db.relationship('User', backref=db.backref('timezones', lazy=True))
3. 用户
from modules.setups.language_model import *
from modules.setups.time_zone_model import *
class User(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
language_id = db.Column(db.Integer, db.ForeignKey('languages.id'), nullable=False)
timezone_id = db.Column(db.Integer, db.ForeignKey('timezones.id'), nullable=False)
user_logs = db.relationship('UserLogs', backref=db.backref('user', lazy=True))
按照以下链接上的教程,我找不到任何问题。
解决方案
推荐阅读
- laravel - 通过 API 上传文件
- r - 如何在不是来自 R 中的 plot() 的图上添加刻度线
- sql - 相对于几列有条件的默认值
- nearprotocol - 我应该如何收取仓储费?
- vue.js - 如何在 vue-good-table 中进行单元格编辑?
- api - Twilio SMS - 在哪里设置选择退出的 webhook?
- python - 在 groupby 和 melt 之后将数据帧转换为嵌套的 JSON
- amazon-web-services - AWS Secret Manager - 在仅设置特定委托人列表时授予所有人访问权限
- git - 通过 git 在 repo 和服务器之间自动同步,忽略但不从源中删除 .gitignore 中的文件
- java - 启用 MethodSecurityInterceptor 以发布 AuthorizedEvent