如果我使用的有没有办法使用setattr得到一个错误,我会得到没有使用setattr django模型?
p=MyModel.objects.filter(WRONG_ATTRIBUTE=value)
setattr(p,'wrong_attr','value')
,而不是我没有得到相关的不存在的属性的错误。有没有办法使用setattr来获取该错误?
谢谢。
如果我使用的有没有办法使用setattr得到一个错误,我会得到没有使用setattr django模型?
p=MyModel.objects.filter(WRONG_ATTRIBUTE=value)
setattr(p,'wrong_attr','value')
,而不是我没有得到相关的不存在的属性的错误。有没有办法使用setattr来获取该错误?
谢谢。
这两个命令没有任何关系。您的通话setattr
就相当于是这样的:
p.wrong_attr = 'value'
不要么引发错误,因为Django的模型实例只是Python对象,和Python对象可任意设定属性。
如果您问如何找到“wrong_attr”是否是有效的字段名称,您可以查看p._meta
的某些方法,例如get_all_field_names()
。
'setattr'不会引发异常。你可以把'p.wrong_attr'放在'try..except'中并且适当地处理它 – karthikr