from django.contrib.auth.models import User
a = User.objects.create_user("1","2","3")
b = User.objects.create_user("1","2","3")
没有错误...为什么django的create_user方法不能验证唯一性?但
a.validate_unique()
ValidationError: {'username': [u'User with this Username already exists.']}
我希望当B正在保存为create_user
部分接收验证错误。
看着Django Model Instance Reference,'保存时会发生什么'一节没有描述任何时候的保存。
这是一个故意的设计决定还是由于使用django-nonrel造成的副作用?我希望关系数据库能够返回一个IntegrityError或类似的东西。
谢谢!我使用的是Django-nonrel(与Mongo),但我希望Mongo能够很好地遵循唯一性约束。 我的解决方案最终创建了我自己的create_user函数,它在提交之前进行了验证;这听起来合理吗? (我没有使用表单来创建他的用户)。 – AlexeyMK 2012-03-23 04:49:46
这几乎是正常的做事方式。数据库约束实际上是最后一道防线,当它们触发时不会告诉你什么,所以最好在提交到数据库之前彻底验证输入。 – 2012-03-23 13:40:05