django保存错误

Posted

技术标签:

【中文标题】django保存错误【英文标题】:django save error 【发布时间】:2011-08-22 05:54:11 【问题描述】:
for *** :
   try:
       xx = A(
          a=x,
          b=y
       )
       xx.save()
   except:
     pass

这是我的问题:一旦“xx”之一保存错误,其他人将无法保存成功。 有谁知道为什么?谢谢!

这是错误信息

Exception
[2011-08-22 14:02:23,879: WARNING/PoolWorker-1] RuntimeError
[2011-08-22 14:02:23,879: WARNING/PoolWorker-1] :
[2011-08-22 14:02:23,879: WARNING/PoolWorker-1] 'generator ignored GeneratorExit'
[2011-08-22 14:02:23,879: WARNING/PoolWorker-1] in
[2011-08-22 14:02:23,880: WARNING/PoolWorker-1] <generator object msg_iter_page at 0x2ec28c0>
[2011-08-22 14:02:23,880: WARNING/PoolWorker-1] ignored

【问题讨论】:

请通过删除try: except:块向我们显示错误消息, 异常 [2011-08-22 14:02:23,879: WARNING/PoolWorker-1] RuntimeError [2011-08-22 14:02:23,879: WARNING/PoolWorker-1] : [2011- 08-22 14:02:23,879: WARNING/PoolWorker-1] '生成器忽略 GeneratorExit' [2011-08-22 14:02:23,879: WARNING/PoolWorker-1] 在 [2011-08-22 14:02:23,880 : WARNING/PoolWorker-1] [2011-08-22 14:02:23,880: WARNING/PoolWorker-1] 被忽略 【参考方案1】:

您可以使用以下语句捕获所有异常:

except:
   pass

GeneratorExit 只是一个例外。这不应该被抓住。请仅捕获您期望的异常。

【讨论】:

谢谢,我是初学者,如何缓存我想要的异常。 你应该捕捉它们,而不是缓存。就像这样:except IOError, exc:【参考方案2】:

你不应该抓到GeneratorExit。如果您想捕获从Exception 而不是从BaseException 继承的所有异常,您应该将代码更改为:

for *** :
   try:
       xx = A(
          a=x,
          b=y
       )
       xx.save()
   except Exception:
     pass

【讨论】:

以上是关于django保存错误的主要内容,如果未能解决你的问题,请参考以下文章

Django Tastypie,多对多保存错误

Django 管理员在模型保存期间返回自定义错误消息

Django - manage.py collectstatic 保存到错误的文件夹

Django 错误的 request.POST 属性值已保存

跟进:缺少 django Modelform 中所需的 Charfield 被保存为空字符串并且不会引发错误

Django CreateView 不保存对象也不给出错误