将列表元素从列表分配给sqlalchemy中的数据库实体

将列表元素从列表分配给sqlalchemy中的数据库实体,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我有一个简单的模型,如下所示,我有一个游戏列表,我希望所有玩家从游戏列表中分配一个且仅一个游戏。在炼金术中我该怎么做。 到目前为止,我正在使用flask sqlalchemy,但问题不限于flask sqlalchemy games = ['soccer', 'hockey', 'baseball', 'cricket', 'basketball'] from flask.ext.sqlalchemy import SQLAlchemy class Gamer(db.Model):

我有一个简单的模型,如下所示,我有一个游戏列表,我希望所有玩家从游戏列表中分配一个且仅一个游戏。在炼金术中我该怎么做。 到目前为止,我正在使用flask sqlalchemy,但问题不限于flask sqlalchemy

games = ['soccer', 'hockey', 'baseball', 'cricket', 'basketball']

from flask.ext.sqlalchemy import SQLAlchemy

class Gamer(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    team_name = db.Column(db.String(80))
    game_name = db.Column(db.String(80))
    game = db.Column(db.String(80), i want only games from the list of games)

可以找到类似的django功能。

首先,您提到的django功能与您列出的模型并不完全相似。原因是
Gamer
模型
,而
SimpleForm
是UI
表单

但是,以下是验证
模型的几种方法:

1) 为
游戏
创建一个单独的选项卡,将值添加为行,并创建从
玩家
游戏
N对1
关系。这是可读的,并且将在业务和数据库级别验证您的数据

class Game(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))

class Gamer(db.Model):
    # ...
    game_id = db.Column(db.Integer, ForeignKey('game.id'))
    game = relationship(Game)
2) 创建并使用


编辑-1:或者,查看。但这同样是在模型级别,而不是UI验证

from sqlalchemy.orm import validates
class Gamer(db.Model):
    # ...
    @validates('game')
    def validate_game(self, key, address):
        assert address in games
        return address