ApP*_*PeL 0 django django-views
我们在我们的系统上使用paypal来检查用户之前是否已付款且已有帐户.今天早上我收到了一个基本上给我一个完整性错误的追溯.
IntegrityError:(1062,"重复输入'user_1234_before'为密钥2")
我的状态如下.
try:
user = User.objects.get(email=ipn_obj.payer_email)
except:
user_slug = ("%s_%s_before") % (ipn_obj.first_name, ipn_obj.last_name)
username = slugify(user_slug)
user = User.objects.create_user(username, ipn_obj.payer_email, 'testpassword')
user.first_name = ipn_obj.first_name
user.last_name = ipn_obj.last_name
user.save()
Run Code Online (Sandbox Code Playgroud)
提前致谢.
永远不要使用空白的except陈述.这里发生的事情是对原因的一个很好的证明.
你可能会使用try/except块来捕获User.DoesNotExist异常.但是,您的代码实际上提出了一个完全不同的异常.因为你正在吞咽它,所以不可能知道哪一个,但可能ipn_obj不是你认为它并且没有payer_email错误,所以你得到了AttributeError.或者,可能是你得到了User.MultipleObjectReturned例外.
将您更改except为except User.DoesNotExist,然后调试您的实际问题.
| 归档时间: |
|
| 查看次数: |
700 次 |
| 最近记录: |