¿Es posible redefinir un modelo utilizado en INSTALLED_APP sin modificar la aplicación en cuestión? Por ejemplo, django-basic-blog tiene un modelo de publicación al que me gustaría agregarle un campo. Podría editar django-basic-blog directamente, pero para la portabilidad de código me gustaría construir sobre eso. No quiero hacer una subclase porque quiero conservar todas las referencias existentes al modelo de publicación. ¡Gracias por adelantado!¿Cómo sobrescribir los modelos definidos en las aplicaciones instaladas en Django?
8
A
Respuesta
11
Si subclase, los campos originales seguirán almacenados en la tabla original, por lo que las referencias seguirán siendo válidas.
Si desea mono-parche de una clase existente, que en su mayoría no es el método sucio recomendable, se podría utilizar
contribute_to_class
en algún archivomodels.py
que será cargada en una aplicación después de la que desea modificar:
models.py:
from django.db.models import CharField
from blog.models import Post
CharField(max_length="100").contribute_to_class(Post, 'new_field')
Si lo haces de esta manera, siempre hay que desnudar el riesgo de que los cambios pueden chocar con otras piezas de código y que su código será más difícil de mantener!
Cuestiones relacionadas
- 1. ¿Usar modelos django en todas las aplicaciones?
- 2. Compartir modelos entre las aplicaciones de Django
- 3. Cómo llamar a los métodos definidos en ApplicationController en modelos
- 4. Obtener lista de todas las aplicaciones instaladas
- 5. Cómo obtener todas las aplicaciones instaladas en el teléfono Android
- 6. ¿Cómo sobrescribir una aplicación en Django correctamente?
- 7. ¿Cómo funcionan los modelos Django?
- 8. Obtenga aplicaciones instaladas en un sistema
- 9. Obtenga una lista de todas las aplicaciones instaladas en Django y sus atributos
- 10. ¿Cómo sobrescribir los estilos definidos en un proyecto de biblioteca de Android?
- 11. Obtener iconos de todas las aplicaciones instaladas en Android
- 12. Alphabatize lista de aplicaciones instaladas
- 13. Django Queryset en todos los modelos?
- 14. Modelos de grupo en django admin
- 15. Eliminar las aplicaciones predeterminadas de Django-admin
- 16. Obtener lista de aplicaciones de Android instaladas
- 17. ¿Dónde almacena el simulador de iPhone las aplicaciones instaladas?
- 18. Cómo subir archivos múltiples en los modelos django admin
- 19. ¿Cómo eliminar un registro en los modelos de Django?
- 20. Obtiene todos los objetos definidos por una relación Django ManyToManyField
- 21. Aproximadamente 20 modelos en 1 aplicación django
- 22. ¿Cómo eliminar modelos de django?
- 23. ¿Cómo separe mis modelos en django?
- 24. ¿Cómo puedo enumerar/enumerar todas las aplicaciones instaladas en Windows XP?
- 25. Versiones de bases de datos en aplicaciones instaladas usando Delphi
- 26. obtener lista de aplicaciones instaladas en iphone objetivo-c
- 27. ¿Cómo hacer únicos en los modelos de Django? Y también indexar una columna en Django
- 28. ¿Cómo crear aplicaciones Django reutilizables?
- 29. ¿Cómo visualizar mejor los modelos y aplicaciones de Rails?
- 30. ¿Cómo sobrescribir los archivos existentes en lote?
¡Excelente respuesta! Sería bueno si proporcionaras un ejemplo para 1. también;) – Jannis