2

我正在开发一个包含 django 服务器和设置模块的项目。

用户将配置他们的系统来运行我的程序,其中包括一个 django webserver 元素以及其他项目。我正在开发一个设置模块,该模块可帮助用户正确设置所有设置并设置所有适当的文件。在设置过程中,我想做的一件事本质上是一个“manage.py syncdb”命令,它从无到有创建一个适当的 SQLite 文件和表。

我可以获取在 manage.py 中找到的代码,并直接将其适当地粘贴到我的设置模块中,但我不确定是否有更好的方法我缺少 - 沿着两行组成:

import django.something
import os

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

或者类似的东西。我只是在这里遗漏了什么吗?

4

1 回答 1

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) 
于 2012-04-26T02:06:09.483 回答