Python在尝试更新模型中不可用的属性时不会抛出异常

时间:2014-03-27 08:44:42

标签: exception django-models attributes

使用python 4.3和django 1.0.2。当我尝试更新模型中不可用的字段时,不会引发异常 Eg x = Mymodel.objects.get(att1='abcd') x.notvalid <---- raises an exception x.notvalid = 'xxx' <--- not raising exception

有人能解释一下这是如何运作的吗?

1 个答案:

答案 0 :(得分:0)

如果你做了作业:

x.notvalid = 'xxx'

您只需将xxx分配给x.notvalid即可。它只是python,它就像:

some_var = 'xxx'

只有您在对象x上执行此操作。在这种情况下,x是一个Django模型,但它仍然是一个python对象,你可以为这样的python对象分配新的属性。

如果您在为其分配了任何内容之前尝试访问x.notvalid,则会在逻辑上抛出一个例外,因为尚未分配x.notvalid