2010-06-09 2 views
0

J'ai un grand nombre de modèles (120+) et je voudrais laisser les utilisateurs de mon application exporter toutes les données de leur part au format XML . J'ai regardé django-piston, mais je voudrais le faire avec un code minimum. En fait, je voudrais avoir quelque chose comme ceci:Activer l'exportation vers XML via HTTP sur un grand nombre de modèles avec des relations enfants

GET /export/applabel/ModelName/ 

Est-ce que toutes les instances de flux ModelName dans applabel ensemble avec son arbre d'objets connexes.

Je voudrais le faire sans écrire de code pour chaque modèle.

Quelle serait la meilleure façon de faire cela?

Répondre

0

La commande standard django dumpdata n'est pas suffisamment flexible pour exporter des modèles individuels. Vous pouvez utiliser la commande makefixture pour faire http://github.com/ericholscher/django-test-utils/blob/master/test_utils/management/commands/makefixture.py

Si je dois le faire, comme point de départ de base je commencerais de quelque chose comme:

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') 
Questions connexes