小编Tom*_*gli的帖子

如何用call_command执行Django的`syncdb --noinput`?

>>> from django.core.management import call_command
>>> call_command('syncdb')
Run Code Online (Sandbox Code Playgroud)

从python脚本中执行syncdb管理命令.但是,我想运行相当于

$ python manage.py syncdb --noinput
Run Code Online (Sandbox Code Playgroud)

来自python shell或脚本.我怎样才能做到这一点?

如果不打扰我是否要创建超级用户的问题,以下行不起作用.

>>> call_command('syncdb', noinput = True) # asks for input
>>> call_command('syncdb', 'noinput') # raises an exception
Run Code Online (Sandbox Code Playgroud)

我使用Django 1.3.

django django-admin syncdb

25
推荐指数
1
解决办法
8712
查看次数

django.db.models.loading.get_model与导入

使用类似的东西是否有任何缺点

from django.db.models.loading import get_model

def get_something():
    model = get_model('app', 'Model')
    return model.something()
Run Code Online (Sandbox Code Playgroud)

代替

from app.models import Model

def get_something():
    return Model.something()
Run Code Online (Sandbox Code Playgroud)

第二个示例可以导致循环依赖,而第一个示例没有,但第二个示例更常见.

更新:如果第二个示例位于名为Other_Model的模型中,并且模型导入了Other_Model,则会出现循环依赖性错误 - 一个简单的循环导入.

django

12
推荐指数
2
解决办法
7655
查看次数

标签 统计

django ×2

django-admin ×1

syncdb ×1