如何在 django 中的 save() 后捕获数据库中的所有异常?
Posted
技术标签:
【中文标题】如何在 django 中的 save() 后捕获数据库中的所有异常?【英文标题】:How to catch all exception in database after save() in django? 【发布时间】:2013-10-08 10:12:31 【问题描述】:我想将这些错误消息返回到 html 表单并显示此表单的问题所在。有解决方案吗?或者我应该使用原始 SQL 查询吗?感谢您的建议。
例如:
models.py:
class GeneticCharacter(models.Model):
StrainNo=models.CharField(max_length=10,primary_key=True)
StrainName=models.CharField(max_length=10)
SourceNo=models.IntegerField()
ESBL=models.CharField(max_length=9,blank=True)
AEM=models.CharField(max_length=12,blank=True)
PMQR=models.CharField(max_length=15,blank=True)
ISeq=models.CharField(max_length=12,blank=True)
Replicon=models.CharField(max_length=10,blank=True)
MLST_type=models.CharField(max_length=10,blank=True)
PLG_type=models.CharField(max_length=2,blank=True)
IsPat=models.BooleanField()
views.py
...
obj=GeneticCharacter()
obj.ESBL="a"*20
obj.AEM="a"*20
obj.save()
...
如何捕获所有异常?
【问题讨论】:
哪些错误消息..? 如模型中的CharField字符串过长 你能说得更具体点吗?能给我们一些代码吗? 【参考方案1】:我猜你想要一个 ModelForm。这将负责您模型的错误处理。查看https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform
【讨论】:
是的!这正是我要找的!非常感谢以上是关于如何在 django 中的 save() 后捕获数据库中的所有异常?的主要内容,如果未能解决你的问题,请参考以下文章
Django,调用 super() 后如何在 save() 方法中更新模型?