Pregunta

Digamos, por ejemplo, que tengo una aplicación de Blog que quiero poder incluir en diferentes proyectos, pero siempre quiero que el Blog esté asociado con algún otro modelo. Por ejemplo, en un caso es posible que desee que se asocie con un usuario:

site.com/someuser/blog

Pero en otro sitio quiero que se asocie con, digamos, una escuela:

site.com/someschool/blog

¿Hay alguna manera de hacer que la aplicación Blog sea conectable para que no sea necesario redefinir el modelo (agregando un campo de clave externa) cada vez que lo coloco en un proyecto?

¿Fue útil?

Solución

Es posible que desee consultar el marco de ContentTypes, lo usé para crear una aplicación de comentarios que se puede usar para comentar cualquier modelo en la base de datos (por diferentes razones, no quería usar la aplicación de comentarios estándar de django) .

http://docs.djangoproject.com/en/dev/ ref / contrib / contenttypes /

Otros consejos

Hay varios detalles importantes para asegurarse de que una aplicación pueda ser reutilizable y creo que es mejor vincular a dos de los conjuntos de documentación más importantes sobre el tema:

Las relaciones genéricas le permiten tener Una clave foránea para cualquier otro modelo. Sin embargo, no está claro en su pregunta a qué tipo de objeto desea vincular una clave externa. Sospecho que la relación de clave externa no es realmente genérica, simplemente no ha detectado otra parte de su sistema que también podría ser una aplicación reutilizable.

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