Python在尝试更新模型中不可用的属性时不会引发异常
问题描述:
使用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
Python在尝试更新模型中不可用的属性时不会引发异常
有人能解释这是如何工作?
答
如果你做一个任务:
x.notvalid = 'xxx'
你只是分配给xxx
x.notvalid
。它仅仅是蟒蛇,就像:
some_var = 'xxx'
只有你在做它的对象x
上。在这种情况下,x
是一个Django模型,但它仍然是一个python对象,您可以将新属性分配给一个python对象。
如果您在分配任何内容之前尝试访问x.notvalid
,它将在逻辑上抛出一个豁免,因为x.notvalid
尚未分配。
谢谢你rednaw,但作为一个特定模型的对象,为什么验证不到位?这是如何预计工作? – user1002477
是的。正如我所说,最终它只是一个Python对象。 Django只对您定义为字段的属性进行验证。 Django让您可以*使用Python的所有方面,同时帮助您创建模型。 – rednaw
好的,非常感谢。 – user1002477