django-logicaldelete

Software captura de pantalla:
django-logicaldelete
Detalles de software:
Versión: 1.1 Beta 1 Dev3
Fecha de carga: 12 May 15
Promotor: Patrick Altman
Licencia: Libre
Popularidad: 1

Rating: nan/5 (Total Votes: 0)

comentarios Desarrollador
django-logicaldelete es una aplicación pequeña y simple que me tiró juntos para conseguir un poco de reutilización de algo que hago en casi cada proyecto y cada modelo se crea. & nbsp; Es demasiado fácil para los buenos datos que se eliminan y sean irrecuperables. También es muy fácil de solucionar este problema reemplazando el método del modelo delete () y simplemente marcar registros como eliminado y luego aprovechar Gerentes de Django para anular el comportamiento predeterminado de modo que los elementos eliminados lógicamente no se devuelven en QuerySets.
Hay dos excepciones sin embargo, que he encontrado útiles a esta regla.
& Nbsp; 1. En el administrador me gusta ver todo con un indicador de si es o no se ha eliminado, con la capacidad de filtrar a los registros solo activos, (o eliminados para el caso).
& Nbsp; 2. Sigo pensando que es una petición válida cuando un artículo es inverosímil por su valor de clave principal, que el objeto debe volver, incluso si está marcado como eliminado.
Uso django-logicaldelete
El uso de la aplicación es bastante simple:
& Nbsp; 1. Ponga la subcarpeta logicaldelete en su Camino Python.
& Nbsp; 2. Heredar de logicaldelete.models.Model para todos los modelos que desea compartir en esta funcionalidad.
& Nbsp; 3. Crear y / o Registrarse administradores para cada uno de estos modelos utilizando logicaldelete.admin.ModelAdmin
adicional
Eliminaciones lógicas son manejadas por el estampado de fecha una columna date_removed. Además, unas columnas DATE_CREATED y DATE_MODIFIED se rellenarán para su conveniencia.
Extensiones posibles
Puede subclase fácilmente estas dos clases para proporcionar funcionalidad genérica y útil a sus modelos.
UUID Clave principal
Me suelen utilizar campos UUID para mis claves primarias porque me permiten fragmentar mis cuadros siempre y cuando tengo que, además, proporcionan un id ofuscado con mis datos (la gente no puede determinar cuántos de un determinado objeto que tengo en mi base de datos, si no quiero que sepan, sino simplemente buscando un id un entero en la URL).
Secuencia Campo
Muchas veces me resulta útil tener un campo entero en mis modelos que permiten la secuenciación y controlado de forma explícita. Normalmente implementar esto como una aplicación en orden descendente, donde los datos se clasifican de mayor a menor por valor de secuencia.
Con el fin de poner en práctica esta que le subclase tanto el modelo y ModelAdmin, donde el modelo sería una simple adición obvia de un IntegerField, el ModelAdmin, anularía get_query_set, hacer algo como:
SequencedModel clase (logicaldelete.models.Model):
& Nbsp; secuencia = models.IntegerField ()
MyLogicalDeletedManager clase (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (self):
& Nbsp; si self.model:
& Nbsp;. Qs = super (MyLogicalDeletedManager, auto) .get_query_set () filtrar (date_removed__isnull = True)
& Nbsp; si SequencedModel en inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- secuencia')
& Nbsp; qs retorno

¿Qué hay de nuevo en esta versión:

  • Todo cambió a all_with_deleted en LogicalDeleteManager
  • LogicalDeleteManager trasladó de logicaldelete.models a logicaldelete.managers
  • Eliminado eliminado y todo QuerySets de logicaldelete.models.Model

Requisitos

  • Python
  • Django

Otro software de desarrollador Patrick Altman

nashvegas
nashvegas

14 Apr 15

formly
formly

20 Feb 15

formly
formly

11 Apr 15

Comentarios a la django-logicaldelete

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!