Estilo: cuándo serializar una instancia de modelo de Django: señales frente al método de guardar del modelo

StackOverflow https://stackoverflow.com/questions/131327

  •  02-07-2019
  •  | 
  •  

Pregunta

Planeo serializar un modelo de Django a XML cuando se guarda o actualiza. (El XML se importará a una película flash). ¿Es mejor escuchar una señal post_save () o pre_save () y luego realizar la serialización, o simplemente manejarla en el methon save () del modelo

¿Fue útil?

Solución

Si es la funcionalidad principal para guardar el modelo, lo querrá como parte del método de guardar. Sin embargo, si ya tiene un modelo funcional y desea ampliarlo para otros fines, entonces las señales son su mejor opción, ya que permiten módulos desacoplados correctamente.

Un buen ejemplo podría ser que desea agregar el registro de eventos a su sitio, por lo que simplemente escucha las señales que significan un evento en lugar de modificar el código original del sitio.

post_save () generalmente es mejor porque significa que el modelo se ha guardado con éxito, el uso de pre_save () no garantiza que el guardado sea exitoso, por lo que no debe usarse para nada que dependa de que el guardado se complete.

Otros consejos

Guardar publicación. De esa manera, los nuevos datos (la razón para realizar la serialización) ya están en la base de datos. Obtendrá un código mucho más limpio que simplemente toma de la base de datos y no tiene que preocuparse por agregar un valor adicional.

La otra forma que viene a la mente es mantener el archivo xml en paralelo a la base de datos. Es decir, en su save () agregue los datos a la base de datos y al archivo xml. Esto tendría mucho menos gastos si se trata de tablas enormes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top