2012-04-26 116 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)