可以将特定列标记为 unique=true。
在 web2py 中处理多列唯一约束的最正确方法是什么?
例如,假设我有一个汇率表。它可以包含“来源货币”、“目标货币”和“汇率”列。两行具有相同的来源和目的地货币是没有意义的。使 from/to 组合独一无二的最优雅或正确的方法是什么?
假设数据将通过表单输入,您可以使用表单验证器,如下所示:
db.define_table('rates',
Field('from_currency'),
Field('to_currency'))
db.rates.to_currency.requires=IS_NOT_IN_DB(
db(db.rates.from_currency==request.vars.from_currency), 'rates.to_currency')
这将确保to_currency
在记录集中是唯一的,其中from_currency
匹配新值from_currency
被插入(所以组合from_currency
and to_currency
必须是唯一的)。
另一种选择是使用无效化 http://web2py.com/book/default/chapter/07#onvalidation函数来确认两个值是不同的——这将在通常的表单验证之后、数据库插入之前运行。
最后,您可以通过 Javascript 在客户端进行验证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)