2012-04-26 3 views
2

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

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

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

import django.something 
import os 

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

Или что-то в этом роде. Я что-то пропустил?

ответ

4

Это следует сделать это:

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) 
Смежные вопросы