我有大量的模型(120+),我想让我的应用程序的用户以XML格式导出它们的所有数据。 我看了django-piston,但我想用最少的代码来做这件事。基本上我想要这样的东西:
GET /export/applabel/ModelName/
将applabel中的ModelName的所有实例与其相关对象树一起流式传输。
我想在不为每个模型编写代码的情况下这样做。
最好的方法是什么?
答案 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')