有没有办法在使用Django模型的setattr时获取错误,而不使用setattr时会得到的错误?

2 投票
1 回答
1381 浏览
提问于 2025-04-18 00:52

如果我使用

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()

撰写回答