我在这里的第一个问题,也许是一个无足轻重的问题,但我真的不明白我做错了什么,我也找不到任何线索网页.py文档。在
是否可以使用数据库选择来验证字段?在
我在做什么: 我正在建立一个注册表,用户名验证有问题。 在我找到的每个示例中,在registration类之前的变量中声明用户,代码如下:
allowed = (
('jon','pass1'),
('tom','pass2')
)
并在验证中使用如下:
^{pr2}$因为我是在数据库中保存的,所以我可以用数据库选择,但这意味着只执行一次选择。 我想在每次调用POST时检查用户,所以我只将“allowed”变量替换为数据库选择这样:
form.Validator('Username already exists.', lambda x: x not in [o.usr for o in db.select('users',what='usr')])
如果我在解释器上测试“x not in[o.usr..etc..etc..]”,这就可以了。。在
>>> [o.usr for o in db.select('users',what='usr')]
0.0 (1): SELECT usr FROM users
[u'hhh', u'Fede', u'Vinz', u'Patro', u'Codino', u'Codino']
>>> x = "Fede"
>>> x not in [o.usr for o in db.select('users',what='usr')]
0.0 (2): SELECT usr FROM users
False
但是当我运行代码并用现有用户名重新注册时,什么都不会发生。。如您所见,“Codino”用户名被注册了两次。在
我做错什么了?在
…更有趣的是:有没有更聪明的方法来阻止注册一个已经使用过的用户名?在
谢谢, 费德里科
我不知道你是否已经对这个问题有了答案,因为这是一个老问题。 下面是我检查用户名是否已经存在的方法。在
我创建了这样一个验证器:
在模型.py在
^{pr2}$相关问题 更多 >
编程相关推荐