我只是想创建一个简单的应用程序,其中有 2 个表在模型中相互链接:
db.define_table('project',
Field('project_name','string',unique =True),
auth.signature)
db.define_table('watershed',
Field('project_name', requires = IS_IN_DB(db,db.project.project_name)),
Field('main_watershed','string', unique =True),
auth.signature)
db.watershed.main_watershed.requires = IS_NOT_EMPTY()
在控制器中:
def add_project():
form = SQLFORM(db.project).process()
if form.accepted: redirect('add_main')
return dict(form = form)
def add_main():
form = SQLFORM(db.watershed).process()
if form.accepted: redirect('add_main')
LIST = db(db.watershed).select()
return dict(form = form, LIST = LIST)
假设用户调用 default/add_project 并添加“Project 1”,如果用户调用 default/add_project 并再次添加“Project 1”,用户会得到错误值已存在于数据库中。
如果此过程转到 default/add_main,如果用户添加(例如在 main_watershed 字段 = MAIN 1),则弹出相同的字符串 NO 错误。
有什么遗漏吗?为什么我的价值不是唯一的?