2010-01-07 19 views
7

Traté de poner una aplicación dentro de otra aplicación (la externa es una fachada en la interior así que tiene sentido ubicarlas de esa manera), y no crea una tabla para el modelo en esa aplicación interna. ¿Esto es normal? (la aplicación está instalada y registrada con el administrador)Django: ¿Puedo tener una aplicación en una subcarpeta de otra aplicación?

+2

No estoy seguro, pero es posible que deba agregar la aplicación interna a la lista de 'INSTALLED_APPS' como' 'outer_app_name.inner_app_name''. –

+0

Sí, funciona. Tuve un maldito error de sintaxis por lo que no funcionó, pero id no detectó el error durante syncdb. – orokusaki

Respuesta

5

Django carga modelos importando el módulo models de cada paquete en la configuración INSTALLED_APPS. Por ejemplo, con una configuración INSTALLED_APPS de ('django.contrib.admin', 'django.contrib.comments', 'spam.ham', and 'eggs'), Django importará modelos de django.contrib.admin.models, django.contrib.comments.models, spam.ham.models y eggs.models.

Si solo hace una lista de su aplicación externa en INSTALLED_APPS (asumiremos que se llama eggs), entonces solo se están importando y creando los modelos de eggs.models. Para obtener los modelos instalados desde su aplicación interna, también deberá agregarlos al INSTALLED_APPS, como eggs.inner_app, de modo que se importará eggs.inner_app.models. (Para facilitar las claves externas, estoy bastante seguro de que si importa modelos desde una aplicación al archivo models.py de otro, solo se crean los modelos definidos en el archivo models.py que se está escaneando.)

Cuestiones relacionadas