Python 有没有一种方法可以使用setattr获取错误,而在django模型中不使用setattr会得到这种错误?

Python 有没有一种方法可以使用setattr获取错误,而在django模型中不使用setattr会得到这种错误?,python,django,django-models,setattr,Python,Django,Django Models,Setattr,如果我使用 setattr(p,'wrong_attr','value') 而不是 p=MyModel.objects.filter(WRONG_ATTRIBUTE=value) 我没有得到与不存在的属性相关的错误。有没有办法使用setattr获取该错误 谢谢。这两个命令没有任何关系。您的setattr调用的等效项是: p.wrong_attr = 'value' 这也不会引起错误,因为Django模型实例只是Python对象,Python对象允许您任意设置属性 如果您询问如何找到“err

如果我使用

setattr(p,'wrong_attr','value')
而不是

p=MyModel.objects.filter(WRONG_ATTRIBUTE=value)
我没有得到与不存在的属性相关的错误。有没有办法使用setattr获取该错误


谢谢。

这两个命令没有任何关系。您的
setattr
调用的等效项是:

p.wrong_attr = 'value'
这也不会引起错误,因为Django模型实例只是Python对象,Python对象允许您任意设置属性


如果您询问如何找到“error\u attr”是否是有效的字段名,可以查看
p.\u meta
的一些方法,例如
get\u all\u field\u names()

setattr
不会引发异常。您可以将
p.error\u attr
放在
try..except
中,并适当地处理它,如果引发异常是所寻求的结果(从问题中可以看出),
p.\u meta.get\u字段('error\u attr')
将起作用,引发
FieldDoesNotExist
异常。p.\u meta.get\u字段('error\u attr'))这就是我要找的!;)非常感谢。(我在哪里点击给出业力点?)