Importing a Django model into a python cli script
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
Django has support for creating custom django-admin commands (documentation).
Very useful for creating command line scripts that access the model.
- Make sure you have added the folder containing
testproject
folder tosys.path
. For example if you have the following structure/foo/bar/testproject/models.py
then you should add/foo/bar
tosys.path
- Make sure the
testproject
folder has a__init__.py
file in it (which can be empty).
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.
精彩评论