有没有办法在使用Django模型的setattr时获取错误,而不使用setattr时会得到的错误?
如果我使用
setattr(p,'wrong_attr','value')
而不是
p=MyModel.objects.filter(WRONG_ATTRIBUTE=value)
我就不会收到关于不存在的属性的错误。有没有办法通过setattr来获取那个错误呢?
谢谢。
1 个回答
2
这两个命令之间没有任何关系。你用的 setattr
的等价写法是这个:
p.wrong_attr = 'value'
这个写法也不会报错,因为Django模型实例其实就是Python对象,而Python对象允许你随意设置属性。
如果你想知道“wrong_attr”是不是一个有效的字段名,可以查看 p._meta
中的一些方法,比如 get_all_field_names()
。