Иногда возникает необходимость выполнить некоторый крипт и использовать в нем django модели. В тком случае можно воспользоваться таким трюком (взял с stackoveflow):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import os import sys import django BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir))) os.environ['DJANGO_SETTINGS_MODULE'] = 'CarRentSystem.settings' django.setup() from balance.models import Account if __name__ == '__main__': print(Account.objects.all()) |
в sys.path добавляется путь к проекту (если файл лежит в проекте то можно использовать эти строки), потом выполняется настройка проекта и запуск django через вызов метода setup(), а дальше можно просто использовать модели.
Дополнение:
В windows server, мне пришлось немного модифицировать скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import django import os import sys if __name__ == '__main__': from balance.models import Account BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(os.path.abspath(BASE_DIR)) sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir))) os.environ['DJANGO_SETTINGS_MODULE'] = 'CarRentSystem.settings' django.setup() print(Account.objects.all()) |
1 |