2012-01-25 5 views
5

Estamos trabajando en un sitio web de django en el que queremos darles a los usuarios el control del contenido, pero queremos que los usuarios administradores moderen el contenido, y una cola del contenido aceptado en caso de que algún superusuario desee rollback datos a una versión específica en el pasado.¿Pueden la django-moderación y django-reversión trabajar juntas para un content_type?

No puedo encontrar una aplicación django para hacer ambas cosas. Estaba leyendo acerca de django-moderation y django-reversión, y me preguntaba si hay una manera de hacer que funcionen juntos.

Vi que esta es una pregunta recurrente, pero nadie responde es correcto. La respuesta típica es usar uno u otro, pero nadie parece tener una solución para el problema.

He leído que el problema principal es que en caso de tener moderación y versiones para un contenido, puede (seguro) crear un árbol de las versiones.

Pero entonces, pensé que yo quiero sólo las versiones aceptadas para ser almacenados, a continuación, las versiones anteriores generarían un historia lineal hacia atrás en el tiempo, es decir, si puedo volver algo y aceptar una nueva cosa, entonces yo creo que es ok a borrar la rama rechazada desde el punto donde revertí cuando acepto (entonces almacene) la nueva versión, lo que lleva a una nueva rama.

¿Es eso posible con django-moderation y django-reversión?

información acerca de las aplicaciones:

[1] https://github.com/etianen/django-reversion/wiki

[2] https://github.com/dominno/django-moderation

Respuesta

5

'Sí'.

Así que tuve el mismo problema, pero también tuve el problema de que la moderación de django parece más que un poco sin mantenimiento.

Me horneé django-moderation en https://github.com/CBWhiz/django-moderation e hice un montón de cambios para que realmente funcione bajo Django 1.4. Sin embargo, estoy bastante seguro de que rompí un poco la compatibilidad con versiones anteriores, así que no estoy seguro de si alguna vez se fusionará mi rama.

En cuanto a django-reversión, funciona bien en conjunto para mis necesidades. Tuve que añadir un hack a django-moderation específicamente para soportarlo: https://github.com/CBWhiz/django-moderation/commit/3b367d68954cea3d7910d8efc5850a136229db0e#L0R49

Por lo tanto, instalar django-reversión y mi rama de django-moderation funciona bastante bien juntos.

El único inconveniente posible podría ser que el historial de reversión agregará una entrada cada vez que pulse guardar, no cuando lo aprueba, por lo que también almacena las ediciones no aprobadas. Eso podría ser pirateado si también lo hicieras.

+0

2 preguntas: ¿Crees que funcionaría en django 1.3? y con geodjango? – jperelli

+0

Debería ser fácil de arreglar para 1.3. Para Geo, sin embargo, es posible que deba desmantelar los cambios para usar _base_manager ya que eso podría romper Geo. –

+0

La moderación funciona bien, pero no puedo configurar la reversión, ¿podría darme una pista sobre cómo registrar los modelos? – jperelli

Cuestiones relacionadas