Recién estoy ejecutando esta aplicación de django (también un usuario inexperto de Python) y quería poder acceder a los modelos.

Tengo lo siguiente:

import sys, os
sys.path.append('/Users/jx/dev/arc/django/second/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.db import models
from testproject.models import Location
loc=Location.objects.get(name='Joes')

print loc.name

Pero recibe el siguiente error:

Traceback (most recent call last):
  File "zz.py", line 6, in <module>
    from testproject.models import Location
ImportError: No module named testproject.models

¿Hay alguna manera de determinar si está cargando settings.py correctamente? ¿O hay un problema obvio de sintaxis? ¿Debería PYTHONPATH reflejar las ubicaciones de los modelos (actualmente no lo hace si print os.environ)?

Gracias

2
timpone 27 may. 2011 a las 07:23

3 respuestas

La mejor respuesta
  1. Asegúrese de haber agregado la carpeta que contiene la carpeta testproject a sys.path. Por ejemplo, si tiene la siguiente estructura /foo/bar/testproject/models.py, entonces debe agregar /foo/bar a sys.path
  2. Asegúrese de que la carpeta testproject tenga un archivo __init__.py (que puede estar vacío).
2
Andrey Fedoseev 27 may. 2011 a las 03:28

Django tiene soporte para crear comandos personalizados django-admin (documentación )

Muy útil para crear scripts de línea de comandos que acceden al modelo.

6
codeape 12 mar. 2013 a las 15:02

Si no estaba cargando su configuración correctamente, entonces from django.db import models habría fallado. Tal como está, no se encuentra su paquete testproject; agregue el directorio que contiene testproject/ a sys.path.

1
Ignacio Vazquez-Abrams 27 may. 2011 a las 03:27