背景:我的Django应用程序位于预先存在的Postgresql数据库之上.该数据库具有非常复杂的触发器和约束网络.
问题:在Django Admin中,如果用户在保存时导致DatabaseError,我想以用户友好的格式向他们显示错误,类似于builtin forms.ValidationError.
示例(这不起作用,导致500)
def save_model(self, request, obj, form, change):
try:
obj.save()
except DatabaseError as e:
raise forms.ValidationError(e)
Run Code Online (Sandbox Code Playgroud)
预期结果:
在Admin中显示给用户," Database Error: ID 58574 - Price is outside customers requested range. Cannot add or update a child row: a foreign key constraint fails."
我想在python中替换字符串的实例但保留原始的情况.
例如,假设我用"香蕉"替换了字符串"鸡蛋":
This recipe requires eggs. - > This recipe requires bananas.
Eggs are good for breakfast. - > Bananas are good for breakfast.
I'M YELLING ABOUT EGGS! - > I'M YELLING ABOUT BANANAS!
现在,我做了一个re.compile和.sub,但是如果没有每次都明确地声明这三个变体,我就无法找到一个聪明的方法.我正在替换大约100多个单词,所以我想必须有一个更智能,更pythonic的方式.
编辑:这不是以前提出的问题的重复. - >有些不同之处:我用一个完全不同的词替换这个词,而不是用标签包裹它.此外,我需要保留案件,即使其全部大写等.请不要在没有完全阅读问题的情况下将其标记为重复.