Я уже рассмотрел несколько вопросов по этому вопросу и не нашел решения для моего конкретного случая. Проблема, с которой я столкнулся сейчас, - это мой файл sqlite db, который вычищается, когда я пытаюсь сохранить(), чтобы вставить новую строку из скрипта Python. Однако этого не происходит при использовании тех же шагов из одного из моих приложений Django.Почему файл db Django sqlite, который был уничтожен скриптом Python?
Есть ли какая-то дополнительная настройка, которую мне нужно иметь, чтобы использовать мою модель Django для работы с внешним скриптом Python, который не упоминается ниже?
В сценарии Python я уже добавил следующее в верхней части файла:
sys.path.append(my_project_path)
os.environ['DJANGO_SETTINGS_MODULE']='settings'
from django.conf import settings
Я также перепроверены по следующим пунктам:
- Мои настройки модуля имеет абсолютный путь для ИМЯ ДБ.
- Когда я запускаю файл DB и запускаю python manage.py syncdb, создается таблица I ; размер файла DB составляет приблизительно 50 тыс. после этой инициализации .
Это поведение я вижу:
- После запуска пункт 2 выше, я могу успешно создавать новые строки для моей таблицы из моего приложения Django.
- После выполнения пункта 2 выше, когда используется модель Django из сценария Python, я получаю DatabaseError, указав, что «нет такой таблицы». Кроме того, файл sqlite db переходит в нулевой размер, когда это происходит.
Есть ли что-то, что мне не хватает, когда я могу использовать модель Django из другого сценария Python? Я использую этот скрипт в качестве инструмента для некоторых ручных обновлений и действительно хотел бы заставить его работать.
Вот быстрый пример моей установки:
Справочники:
myproject/
myproject/myapp/
myproject/tools/
Модель Django проживает MyProject/MyApp/и сценарий заключается в MyProject/инструментов /. PYTHONPATH включает myproject /. В сценарии, у меня есть следующие:
import os
import sys
sys.path.append(absolute_path_to_myproject)
os.environ['DJANGO_SETTINGS_MODULE']='settings'
from django.conf import settings
import myapp.models
my_model = myapp.models.my_model(name = 'TestName')
my_model.save()
Оказывается, эта проблема возникла из-за чего-то еще в среде, искажающей файл и не связанной с кодом. – Hazok