django автоматизировать syncdb

Я работаю над проектом, который включает в себя сервер Django, а также модуль установки.

Пользователь будет настраивать свою систему для запуска моей программы, которая включает в себя элемент веб-сервера django наряду с другими элементами. Я работаю над модулем установки, который помогает пользователю правильно настроить все параметры и настраивает все соответствующие файлы. Одна из вещей, которую я хотел бы видеть в процессе установки, - это, по сути, команда manage.py syncdb, которая создает соответствующий файл и таблицу SQLite из ничего.

Я мог бы взять код, найденный в manage.py, и напрямую вставить его в мой установочный модуль, но я не уверен, что есть лучший подход, который мне не хватает - по двум строкам:

import django.something
import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.something.syncdb()

Или что-то в этом роде. Я просто что-то здесь упускаю?

1 ответ

Решение

Это должно сделать это:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core import management
management.call_command('syncdb', interactive=False)

Вы также можете сделать

import os
import settings
from django.core.management.commands import syncdb 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

syncdb.Command().execute(noinput=True) 
Другие вопросы по тегам