Стиль - когда сериализовать экземпляр модели Django: сигналы против метода сохранения модели - PullRequest
1 голос
/ 25 сентября 2008

Я планирую сериализовать модель Django в XML при ее сохранении или обновлении. (XML будет импортирован во флэш-фильм). Лучше прослушивать сигнал post_save () или pre_save () и затем выполнять сериализацию, либо просто обрабатывать его в методе save () methon

Ответы [ 2 ]

2 голосов
/ 26 сентября 2008

Если это основная функциональность для сохранения модели, вы захотите использовать ее как часть метода сохранения. Однако, если у вас уже есть функционирующая модель, и вы хотите расширить ее для других целей, лучше всего подавать сигналы, поскольку они позволяют правильно расцепить модули.

Хорошим примером может быть то, что вы хотите добавить регистрацию событий на свой сайт, поэтому вы просто слушаете сигналы, обозначающие событие, а не модифицируете исходный код сайта.

post_save () обычно лучше, потому что это означает, что модель была успешно сохранена, использование pre_save () не гарантирует, что сохранение будет успешным, поэтому не должно использоваться для чего-либо, что будет зависеть от того, завершено ли сохранение.

0 голосов
/ 25 сентября 2008

Пост сохранить. Таким образом, новые данные (причина выполнения сериализации) уже находятся в базе данных. Это сделает намного более чистый код, который просто берет из базы данных и не должен беспокоиться о добавлении дополнительного значения.

Другой способ, который приходит на ум, - поддерживать файл XML параллельно с базой данных. То есть в вашем save () добавьте данные в базу данных и в XML-файл. Это привело бы к гораздо меньшим издержкам, если вы имеете дело с огромными столами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...