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

时间:2012-05-08 17:01:31

标签: sqlalchemy flask-sqlalchemy

我有一个简单的模型如下,我有一个游戏列表,我希望所有玩家从游戏列表中分配一个且只有一个游戏。我如何在sqlalchemy中做到这一点。 截至目前我正在使用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功能here

1 个答案:

答案 0 :(得分:0)

首先,您引用的django功能与您列出的模型实际上不是类似。原因是GamermodelSimpleForm是用户界面form

但是,以下几种方法可以验证model

1)为Games创建单独的标签,将值添加为行,并创建从N-to-1Gamer的{​​{1}}关系。这是可读的,并将在业务和数据库级别验证您的数据

Game

2)创建并使用simple validator

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)

edit-1:或者,请查看The Enum Recipe。但同样,这是在模型级别,而不是UI验证。