我有一个简单的模型如下,我有一个游戏列表,我希望所有玩家从游戏列表中分配一个且只有一个游戏。我如何在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。
答案 0 :(得分:0)
首先,您引用的django功能与您列出的模型实际上不是类似。原因是Gamer
是model
而SimpleForm
是用户界面form
。
但是,以下几种方法可以验证model
:
1)为Games
创建单独的标签,将值添加为行,并创建从N-to-1
到Gamer
的{{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验证。