2009-05-04 13 views
6

Digamos, por ejemplo, que tengo una aplicación de blog que quiero 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 quiera que sea asociada a un usuario:¿Cómo se puede conectar una aplicación de Django?

site.com/someuser/blog

Pero en otro sitio que yo quiero que estar asociado con, por ejemplo, una escuela:

site.com/someschool/blog

¿hay una manera de hacer que la aplicación enchufable Blog de modo que no es necesario redefinir el modelo (añadiendo un campo de clave externa) cada vez que se me cae en un proyecto?

+2

cheque última rueda de Django para charla sobre aplicaciones conectables – yesraaj

Respuesta

4

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

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

6

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

3

Generic relationships le permiten tener una clave externa a cualquier otro modelo. Sin embargo, no queda claro a partir de su pregunta a qué tipo de objeto desea que se conecte una clave externa. Sospecho que la relación de clave externa no es realmente genérica: simplemente no has detectado otra parte de tu sistema que también podría ser una aplicación reutilizable.

Cuestiones relacionadas