生成django中的开发数据

时间:2012-08-26 11:44:59

标签: database django initialization django-south

为了能够看到我的django应用程序的样子,并执行大量数据,我想以编程方式在数据库中生成数据。在django文档中,他们建议使用fixtures或SQL语句,但我宁愿使用一个简单的python循环来使用django模型类生成随机条目的thousends。

我如何执行这样的脚本?我正在使用南方进行数据库迁移,但即使有这样的数据生成似乎也不受支持。

3 个答案:

答案 0 :(得分:3)

您可以使用django-whatever(增强型django-any) - 它可以轻松创建虚拟数据。

这是我的示例(在* app_name * / management / commands / dummyitems.py中):

class Command(BaseCommand):
    args = '[count]'

    def handle(self, count=20, *args, **options):

        try:
            i = int(count)
        except ValueError:
            print u'n is to be a number!'
            sys.exit(1)

        for _ in xrange(i):
            # you can pass params explicitly
            m = any_model(MY_MODEL_CLASS, image=None)
            m.save()

所以如果我需要100个虚拟物品,我会跑:

$ python manage.py dummyitems 100

答案 1 :(得分:2)

直接回答您的问题 - 此类脚本以custom management commands运行,但使用像Northwind这样的预先填充的数据库会更简单。请参阅this answer,了解如何为django实现它。

答案 2 :(得分:0)

首先安装这个包 https://pypi.org/project/model-mommy/ 然后 在 Django shell 上运行此代码。它会为项目中的所有模型生成虚假数据。

from django.apps import apps
from django.conf import settings
from model_mommy import mommy


for app in settings.INSTALLED_APPS:
    try:
        app_models = apps.get_app_config(app).get_models()
    except:
        continue
    for model in app_models:
        try:
            mommy.make(model, _quantity=100)
        except:
            print('error')