保存一个对象的时候, Django执行下面的步骤

发出一个预存信号。 它发出一个将要存储一个对象的通知。你可以注册一个监听程序,在信号发出的时候就会被调用。

预处理数据。对于对象的每个字段,将根据需要进行自动的数据修改。大部分字段并不预处理,它们会保持它们原来的样子。预处理仅仅用在那些有特殊性质的字段,比如文件字段。

为数据库准备数据。 每一个字段先要把当前值转化成数据库中可以保存的数据的类型。

大多数字段的数据不需要预先准备。简单的数据类型,比如整型和字符串等python对象可以直接写进数据库。然而,更复杂的数据类型需要做一些修改。比如, DateFields 使用python的 datetime 对象来存储数据。数据库并不能存储 datetime 对象,所以该字段要存入数据库先要把值转化为符合ISO标准的日期字符串。

向数据库中插入数据。 经过预处理准备好的数据然后会组合成一条SQL语句来插入数据库。

发出存毕信号。 与预存信号类似,存毕信号在对象成功保存之后发出。同样,这些信号也还没有文档化

posted @ 2009-11-04 17:41  kid的笔记本  阅读(412)  评论(0编辑  收藏  举报