que tienen un modelo con una relación genérica:¿Cómo obtener la aplicación de un modelo de Django?
TrackedItem --- genericrelation ---> any model
Me gustaría ser capaz de obtener de forma genérica, a partir del modelo inicial, el elemento rastreado.
Debería poder hacerlo en cualquier modelo sin modificarlo.
Para hacer eso necesito obtener el tipo de contenido y la identificación del objeto. Obtener el ID del objeto es fácil ya que tengo la instancia del modelo, pero obtener el tipo de contenido no es: ContentType.object.filter requiere el modelo (que es solo content_object.__class__.__name__
) y la etiqueta app_.
No tengo idea de cómo obtener de manera confiable la aplicación en la que se encuentra el modelo.
Por ahora hago app = content_object.__module__.split(".")[0]
, pero no funciona con las aplicaciones django contrib.
Esta es una mejor solución que usar _meta. – Wogan
¿Lo es? ¿Esto no afecta la base de datos? – meshy
@meshy yes pero django ContentType usa un caché en su administrador, por lo que solo consulta una vez por modelo. – dalore