烧瓶SQL炼金术的关系

时间:2018-07-18 05:43:10

标签: python sqlalchemy

我无法在Flask SQL Alchemy中建立一对一的关系。在终端中运行命令flask-init之后,我得到了以下错误:

  

sqlalchemy.exc.NoForeignKeysError:无法确定连接条件   关系TimeZones.users上的父/子表之间-那里   没有链接这些表的外键。确保引用   列与ForeignKey或ForeignKeyConstraint关联,或者   指定一个“ primaryjoin”表达式。

我有三(3)张桌子。

  1. 语言
  2. 时区
  3. 用户

表用户具有“语言”表和“时区”表的主键。

以下是所有三个表的代码:

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))

按照下面链接中的可用教程,我找不到任何问题。

http://flask-sqlalchemy.pocoo.org/2.3/models/

0 个答案:

没有答案