Можно ли получить информацию о django, не запуская его
У меня есть модель django, весь код завершен. но я хочу получить доступ к информации о моей модели. код вроде этого, чтобы получить имена полей.
for f in myModel._meta.fields:
print(f.get_attname())
можно ли сделать это из внешнего скрипта python без запуска сервера django?
другие возможные автоматизированные способы сделать это и сохранить результаты в файл также приветствуются.
благодаря @klaus D и документации по командам управления я создал эту структуру
users/
__init__.py
models.py
management/
__init__.py
commands/
__init__.py
_private.py
modelInfo.py
и в modelInfo.py
я сделал
from django.core.management.base import BaseCommand, CommandError
from users import views2
def savelisttxtfile(the_list, path_, type_='w', encoding="utf-8"):
with open(path_, type_, encoding=encoding) as file_handler:
for item in the_list:
file_handler.write("{}\n".format(item))
class Command(BaseCommand):
def handle(self, *args, **options):
dic=[]
for f in views2.ChertModel._meta.fields:
print(f.get_attname())
dic.append(f.get_attname())
savelisttxtfile(dic,"F:\projects\sd.txt")
и для его запуска я зашел в manage.py location
и выполнил python manage.py modelInfo
, чтобы запустить его.
Что касается вашей "попытки1", кажется, что запустить оболочку python типа python manage.py shell
немного сложнее, чем то, что вы там предлагаете.
К счастью, вы можете сделать следующее:
python manage.py shell < your_script.py
и ваш скрипт будет выполнен, как если бы он был набран непосредственно в "оболочке django". Помните, что вам все еще нужно импортировать ваши модели относительно вашего проекта, т.е. from myapp.models import mymodel
.