在具有子关系的大量模型上通过HTTP导出到XML的导出

时间:2010-06-09 12:51:46

标签: django django-models

我有大量的模型(120+),我想让我的应用程序的用户以XML格式导出它们的所有数据。 我看了django-piston,但我想用最少的代码来做这件事。基本上我想要这样的东西:

GET /export/applabel/ModelName/

将applabel中的ModelName的所有实例与其相关对象树一起流式传输。

我想在不为每个模型编写代码的情况下这样做。

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

标准django dumpdata 命令不够灵活,无法导出单个模型。您可以使用 makefixture 命令执行http://github.com/ericholscher/django-test-utils/blob/master/test_utils/management/commands/makefixture.py

如果我必须这样做,作为一个基本出发点,我将从以下内容开始:

from django.core.management import call_command
def export_view(request, app_label, model_slug):
#  You can do some stuff here with the specified model if needed
#   ct = ContentType.objects.get(app_label=app_label, model=model_slug)
#   model_class = ct.model_class()
    # I don't know if this is a correct specification of params
    # command line example: python manage.py makefixture --format=xml --indent=4 YourModel[3] auth.User[:5]
    # You'll have to test it out and tweak it
    call_command("makefixture", "file.xml", '%s.%s[:]' % (app_label, model_slug), format='xml')