try:
user = User.objects.create_user(_username, _email, pwd)
except IntegrityError, e:
fail = e.message
return render_to_response('register.html',{'reg_fail':fail},context_instance=RequestContext(request))
我有这个代码,一旦我发现IntegrityError,我收到此错误: 当前事务被中止,命令被忽略,直到事务块结束
这是为什么?如果我删除context_instance
部分,那么我将再次访问该页面但没有任何媒体访问权限。我被困了,我只想注册一个用户或者如果是integrityError,那么渲染到注册页面并显示错误消息。
顺便说一句:我正在使用django1.4和postgresql。而User
是django的授权用户
答案 0 :(得分:1)
使用user_create
启动事务,再次执行此操作会导致未提交事务的错误。您必须在user_create
之后提交(结束)您的事务,如下所示:
try:
user = User.objects.create_user(_username, _email, pwd)
user.full_clean()
user.save()
except IntegrityError, e:
fail = e.message
return render_to_response('register.html',{'reg_fail':fail},context_instance=RequestContext(request))
答案 1 :(得分:0)
您使用的是默认数据库还是数据库。建议使用db_manager()来指定数据库。 db_manager()返回绑定到您指定的数据库的管理器的副本。
User.objects.db_manager(’new_users’).create_user(...)