1

我计划在保存或更新 Django 模型时将其序列化为 XML。(XML 将被导入到 Flash 电影中)。侦听 post_save() 或 pre_save() 信号然后执行序列化更好,还是只在模型的 save() 方法中处理它?

4

2 回答 2

2

如果它是保存模型的核心功能,您将希望它作为保存方法的一部分。但是,如果您已经有一个正常运行的模型并且您想将其扩展用于其他目的,那么信号是您最好的选择,因为它们允许正确解耦模块。

一个很好的例子可能是您想将事件日志记录添加到您的站点,因此您只需侦听表示事件的信号,而不是修改原始站点代码。

post_save() 通常是最好的,因为它意味着模型已经成功保存,使用 pre_save() 并不能保证保存会成功,所以不应该用于任何取决于保存完成的事情。

于 2008-09-25T21:49:44.517 回答
0

后保存。这样,新数据(执行序列化的原因)已经在数据库中。它将产生更简洁的代码,只需从数据库中获取,而不必担心添加额外的值。

想到的另一种方法是与数据库并行维护 xml 文件。也就是说,在您的 save() 中将数据添加到数据库和 xml 文件中。如果您正在处理巨大的表,这将有更少的开销。

于 2008-09-25T03:43:34.860 回答