Reputation: 19969
I am just getting this django app (also an inexperienced python user) running and wanted to be able to access the models.
I have the following:
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
but get the following error:
Traceback (most recent call last):
File "zz.py", line 6, in <module>
from testproject.models import Location
ImportError: No module named testproject.models
Is there a way I can determine whether it is loading the settings.py correctly? Or is there an obvious syntax issue? Should the PYTHONPATH reflect the locations for the models (it currently doesn't if print os.environ)?
thx
Upvotes: 2
Views: 3226
Reputation: 100816
Django has support for creating custom django-admin commands (documentation).
Very useful for creating command line scripts that access the model.
Upvotes: 6
Reputation: 5382
testproject
folder to sys.path
.
For example if you have the following structure /foo/bar/testproject/models.py
then you should add /foo/bar
to sys.path
testproject
folder has a __init__.py
file in it (which can be empty).Upvotes: 2
Reputation: 799062
If it wasn't loading your settings correctly then from django.db import models
would have failed. As it is, your testproject
package isn't found; add the directory containing testproject/
to sys.path.
Upvotes: 1