Django倾倒单个模型的数据?

我可以在单个模型上执行Django中的dumpdata ,而不是整个应用程序,如果是这样,怎么办?

对于一个应用程序,它将是:

 python manage.py dumpdata myapp 

但是,我想要一些特定的模型,比如“myapp.mymodel”被抛弃。 原因是,我有一些巨大的,300万的logging,加上同样的应用程序,我不喜欢倾销的数据集。

从版本1.1及更高版本开始,Django dumpdata management命令允许您从各个表中转储数据:

 ./manage.py dumpdata myapp1 myapp2.my_model 

您还可以在命令行上分隔多个应用程序和模型。 这是规范的定义:

 django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]] 

如上所述,你不能通过Django 1.0中的manage.py命令来实现。 但是,您可以使用脚本导出JSON文件,并使用loaddata加载它:

 from django.core import serializers from myproject.myapp import models data = serializers.serialize("json", models.MyModel.objects.all()) out = open("mymodel.json", "w") out.write(data) out.close() 

我认为你有你的问题的解决scheme。 你可以像这样转储一个单独的模型:

 ./manage.py dumpdata myapp.my_model 

为了成功,我不得不说两次,并指定模型两次,如:

 ./manage.py dumpdata myapp2.my_model myapp2.my_model 

如果我只说

 ./manage.py dumpdata myapp2 myapp2.my_model 

尽pipe事实上我指定了my_model,但是myapp2中的所有模型都被我淹没了。

作为一种解决方法,您可以创build另一个应用程序并复制模型,但使用db_table元选项将其指向现有表。 然后,您可以将您复制的模型转储到新的应用程序中。 您现有的应用程序不会受到影响。

把所有的数据从django模型转换成json格式。

句法:

 python manage.py dumpdata app_name.model_name 

例如从django中的默认身份validation应用程序中的group_permission模型转储数据。

 python manage.py dumpdata auth.group_permission 

为了输出在控制台上看看。

我已经创build了一个pipe理命令,在每个模型的基础上生成一个灯具。 赛程可以通过运行生成:

 ./manage generate_fixtures app.model.MyModel --file=dump/MyModel.json 

代码: https : //gist.github.com/2394883