Я планирую сериализовать модель Django в XML при ее сохранении или обновлении. (XML будет импортирован в флеш-ролик). Лучше ли слушать сигнал post_save() или pre_save(), а затем выполнять сериализацию или просто обрабатывать его в методе save() моделиСтиль - Когда сериализовать модель Django Экземпляр: сигналы против метода сохранения модели
ответ
Если это основная функциональность для сохранения модели, вы захотите ее как часть метода сохранения. Однако, если у вас уже есть действующая модель, и вы хотите расширить ее для других целей, тогда сигналы станут вашим лучшим выбором, поскольку они позволяют правильно развязать модули.
Хорошим примером может быть то, что вы хотите добавить регистрацию событий на свой сайт, чтобы вы просто прослушивали сигналы, которые означают событие, а не изменяют исходный код сайта.
post_save() обычно лучше, потому что это означает, что модель была успешно сохранена, использование pre_save() не гарантирует, что сохранение будет успешным, поэтому не должно использоваться ни для чего, что будет зависеть от того, ,
Сообщение save. Таким образом, новые данные (причина выполнения сериализации) уже находятся в базе данных. Это сделает намного более чистый бит кода, который просто берет из базы данных, и не нужно беспокоиться о добавлении дополнительного значения.
Другой способ, который приходит на ум, - поддерживать файл xml параллельно с базой данных. То есть в вашем файле save() добавьте данные в базу данных и в файл xml. Это будет иметь гораздо меньше накладных расходов, если вы имеете дело с огромными таблицами.
- 1. Сигналы Django против переопределения метода сохранения
- 2. Переопределение метода сохранения против метода модели?
- 3. Raising ValidationError из метода сохранения модели django?
- 4. django-сигналы против триггеров?
- 5. Django - сериализовать полиморфную модель
- 6. Django - экземпляр одной модели
- 7. Модели Django, сигналы и посылка электронной почты
- 8. Использовать сигналы или переопределять метод сохранения модели?
- 9. Сериализовать связанные модели в Django
- 10. Django: Получить экземпляр модели из формы без сохранения
- 11. Django. Связанная модель возвращает Нет после сохранения первичной модели
- 12. Как вы сериализуете экземпляр модели в Django?
- 13. сериализовать модель Django с ForeignKey
- 14. Как сериализовать возвращаемое значение метода в модели?
- 15. Django - Когда следует использовать сигналы и когда следует переопределять метод сохранения?
- 16. Django pre_save сигналы работают, когда модель сохранена, но не ModelForm?
- 17. Сигналы pyqt против прямого вызова метода
- 18. Как получить сериализовать модель в Django REST
- 19. Ручной запуск метода сохранения изображений в модели Django
- 20. Действия администратора django против сохранения в классе модели
- 21. Django трудно сэкономить несколько объектов модели в рамках метода сохранения
- 22. Django обновить экземпляр модели
- 23. Django модели() против Model.objects.create()
- 24. Модель производительности против модели C++
- 25. Проблема с сохранением метода сохранения на модели Django с ManyToManyField
- 26. Модель Django за таблицу против модели за выбор
- 27. Как убрать модель модели Django?
- 28. Вызов метода модели извне Django
- 29. Тест переопределенного метода сохранения в Django
- 30. Как обновить экземпляр модели в другом методе сохранения модели в django?
«Данные уже в базе данных» не делают код чище. В любом случае вы хотите вытащить данные из объекта модели, вы не делаете дополнительную поездку в БД. Post_save - правильный ответ, но @Andrew Ingram имеет правильную причину. – 2008-09-30 14:16:39