Как вы заметили, django не была правильно инициализирована, и поэтому вы получаете это сообщение.
Как упоминалось @ davit-tovmasyan, есть встроенная команда manage.py
для открытия django оболочка в правильном контексте:
./manage.py shell
Кроме того, если вы установите django -extensions , есть очень полезная команда, которая импортирует все ваши модели плюс общий импорт:
$ ./manage.py shell_plus
# Shell Plus Model Imports
from django.contrib.admin.models import LogEntry
from project.my_app.models import Model1, Model2
# ...etc, for all django and project apps
# Shell Plus Django Imports
from django.core.cache import cache
from django.conf import settings
# ...
>>> type your python here
Если вы хотите запустить собственный скрипт, например, в temp.py
, вы можете скопировать код manage.py в новый файл и запустить его напрямую:
import os
import django
# these must be before any other imports of django app code/models
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
django.setup()
from my_app.models import Product
print(Product.objects.all())
# at the command line:
$> chmod +x temp.py
$> ./tmp.py
Также с расширениями django run_script - это папка scripts
, в которую можно добавлять простые python сценарии с помощью метода run()
.