web2py,数据库关系和权限
所以我有这个问题 例如我有 2 张桌子 模板(ID,用户ID,模板名称,参考) user_settings(id,user_id,default_template)
因此每个用户可以创建许多模板,并且在他的设置中他可以选择一个他将始终使用的默认模板,
所以现在有很多用户,所以当用户想要选择默认模板时,他可以看到所有模板(他自己的模板和其他用户的模板)
表都是这样定义的:
db.define_table('i2l_templates',
Field('id','id',
represent=lambda id:SPAN(A('view',_href=URL('view_template',args=id)),' | ',
A('edit',_href=URL('edit_template',args=id)))),
Field('user_id', db.auth_user, default=auth.user_id, writable=False,readable=False,
label=T('User Id')),
Field('template_name', requires=IS_NOT_EMPTY(), type='string',
label=T('Template name')),
...
...
...
)
db.define_table('user_settings',
Field('id','id',
represent=lambda id:SPAN(A('view',_href=URL('view_settings',args=id)))),
Field('user_id', db.auth_user, default=auth.user_id, writable=False,readable=False,
label=T('User Id')),
Field('standard_template_id', templates,
label=T('Standard Template')),
...
...
)
我应该怎么做才能让用户只选择他自己的模板!
So i've this problem
i've 2 tables for example
templates(id,user_id,template_name,reference)
user_settings(id,user_id,default_template)
so each user can create many templates and in his settings he can choose a default template that he will always use
so now there is many users so when a user want to choose a default template, he can see all templates (his own templates and the templates for the other users)
tables are so defined:
db.define_table('i2l_templates',
Field('id','id',
represent=lambda id:SPAN(A('view',_href=URL('view_template',args=id)),' | ',
A('edit',_href=URL('edit_template',args=id)))),
Field('user_id', db.auth_user, default=auth.user_id, writable=False,readable=False,
label=T('User Id')),
Field('template_name', requires=IS_NOT_EMPTY(), type='string',
label=T('Template name')),
...
...
...
)
db.define_table('user_settings',
Field('id','id',
represent=lambda id:SPAN(A('view',_href=URL('view_settings',args=id)))),
Field('user_id', db.auth_user, default=auth.user_id, writable=False,readable=False,
label=T('User Id')),
Field('standard_template_id', templates,
label=T('Standard Template')),
...
...
)
what should i do to make user choose only his own template!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,不应该
是
对于引用字段,默认的表单验证器是
IS_IN_DB(db,'.id'),它将选择引用表中的所有记录。但是,您可以覆盖默认验证器并指定记录子集:
请参阅此处 有关数据库验证器的更多信息。
First, shouldn't
be
For a reference field, the default form validator is
IS_IN_DB(db,'<table>.id')
, which will select all records in the referenced table. However, you can override the default validator and specify a subset of records:See here for more on database validators.