Vous n'êtes pas identifié(e).
Bonjour,
Je souhaite écrie une fonction me permettant de remplir un template *.xml. Mai j'ai des problème au niveau du passage de l'objet render_to_response. Bref voici mon code. En fait, je ne sais pas comment retourné un objet pouvant me permattre de compléter mon template automatiquement.
J'utilise django 1.1 et python 2.6
Fonction écrit dans le fichier views.py
def main_formation(request, formation_id):
formations = Formation.objects.get(id=formation_id)
variables = RequestContext(request, {
'formations': formations
})
return render_to_response('saisie/formation.xml', variables)
Voici mon fichier template que je souhaite remplir
<cdm:CDM xmlns:cdm="http://cdm-fr.fr/2006/CDM-frSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://cdm-fr.fr/2006/CDM-frSchema [url=http://cdm-fr.fr/2006/schemas/CDM-fr.xsd\]http://cdm-fr.fr/2006/schemas/CDM-fr.xsd\"[/url] language="fr-FR">
{% if formations %}
<cdm:orgUnitName>
<cdm:text language="fr-FR"> {{ formation.etablissement }} </cdm:text>
</cdm:orgUnitName>
<cdm:orgUnitAcronym>{{ formation.sigle }}</cdm:orgUnitAcronym>
<cdm:contacts>
<cdm:contactData>
<cdm:adr>
<cdm:locality>{{ formation.ville }} </cdm:locality>
<cdm:country>{{ formation.pays }}</cdm:country>
</cdm:adr>
</cdm:contactData>
</cdm:contacts>
</cdm:CDM>
{% endif %}
Merci d'avance à toute personne pouvant me donné quelques indications.
Dernière modification par frncseric (04-07-2012 19:05:55)
Hors ligne
Bonsoir,
La fonction :
def main_formation(request, formation_id):
formations = Formation.objects.get(id=formation_id)
variables = RequestContext(request, {
'formations': formations
})
return render_to_response('saisie/formation.xml', variables)
comporte à mon sens quelques erreurs!
la fonction, sauf erreur de ma part, 'render_to_response()' est mal
utilisée.
Elle prend les paramètres
1. template -> str
2. dictionnaire de données -> dict
3. (optionnel) le RequestContext ou le mime type
cf doc, qui est d'ailleurs très bien renseignée à ce sujet !!!
https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#django.shortcuts.render_to_response
Le 4 juil. 2012 19:42, "Eric Francis" <frncseric _AT_ gmail.com> a écrit :
> Bonjour,
> Je souhaite écrie une fonction me permettant de remplir un template xml.
> Mai j'ai des problème au niveau du passage de l'objet httpReponse. Bref
> voici mon ode
> Fonction écrit dans le fichier views.py
>
> [i]
> def main_formation(request, formation_id):
> formations = Formation.objects.get(id=formation_id)
> variables = RequestContext(request, {
> 'formations': formations
> })
> return render_to_response('saisie/formation.xml', variables)
> [/i]
>
> Voici mon fichier template que je souhaite remplir
>
> [i]
> <cdm:CDM xmlns:cdm="http://cdm-fr.fr/2006/CDM-frSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://cdm-fr.fr/2006/CDM-frSchema
> [url=
> http://cdm-fr.fr/2006/schemas/CDM-fr.xsd\]http://cdm-fr.fr/2006/schemas/CDM-fr.xsd\
> "[/url]
> language="fr-FR">[/i]
>
> [i]{% if formations %}
> <cdm:orgUnitName>
> <cdm:text language="fr-FR">[b] {{ formation.etablissement
> }}[/b]
> </cdm:text>
> </cdm:orgUnitName>
> <cdm:orgUnitAcronym>[b]{{ formation.sigle
> }}[/b]</cdm:orgUnitAcronym>
> <cdm:contacts>
> <cdm:contactData>
> <cdm:adr>
> <cdm:locality>[b] {{ formation.ville
> }}[/b] </cdm:locality>
> <cdm:country>[b] {{ formation.pays }}[/b]
> </cdm:country>
> </cdm:adr>
> </cdm:contactData>
> </cdm:contacts>[/i]
>
> [i]</cdm:CDM>
> {% endif %}
> [/i]
> Merci d'avance à toute personne pouvant me donné quelques indications.
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
Hors ligne
Salut M. Namgyal Brisson,
Merci pour votre réponse.
def main_formation(request, formation_id):
formations = Formation.objects.get(id=formation_id)
variables = RequestContext(request, {
'formations': formations
})
return render_to_response('saisie/formation.xml', variables)
Dans mon code, la fonction return render_to_response('saisie/formation.xml', variables) n'est peut être pas appropriée car, sauf erreur de ma part, elle me semble bien utilisé parce que le 3ème paramètre est optionnel. Ici variable est bien un dictionnaire.
Néanmoins, quand je l'écrit ainsi
render_to_response('saisie/formation.xml', variables, mimetype="application/xhtml+xml")
j'obtiens mon fichier xml sans les valeurs attendues, je veux dire les valeurs qui devraient être ajouter dynamiquement.
Merci encore parce que l'ajout de ce paramètre optionnel m'a fait avancé un peu et j'espère trouver la solution ce problème qui me bloque déjà trop.
Hors ligne
Bonjour,
Merci à FoxMaSk pour sa réponse.
Mon fichier xml doit être accessible en thhp par une methode. Ce qui me permettra de compléter certain champs. Voici par exemple un fragment de mon fichier xml
<cdm:contacts>
<cdm:contactData>
<cdm:adr>
<cdm:locality>{{ formation.ville }}</cdm:locality>
<cdm:country>{{ formation.pays }}</cdm:country>
</cdm:adr>
</cdm:contactData>
</cdm:contacts>
Je souhaite remplir dynamiquement les champs {{ formation.ville }} {{ formation.pays }}.
Une fois que je pourrai remplir dynamiquement ces champs, je pourrai sauvegarder le fichier ou l'envoyer directement en sortie téléchargeable. Ma priorité est de remplir ces champs d'abord de façon dynamique.
J'ai esayé l'exemple donné par M. Namgyal Brisson, mais j'ai le fichier avec des champs non remplient.
Merci pour votre aide
Hors ligne
Salut,
Merci pour votre aide. Je viens de résoudre le problème. La fonction
return render_to_response('myapp/index.html', {"foo": "bar"},
mimetype="application/xhtml+xml")
marche bien. En fait, j'avais une erreur au niveau de mon query qui ne retournait pas d'objets. Et du coup, mon dictionnaire était vide.
Je souhaite maintenant que ce fichier soit directement disponible en en sortir téléchargéable et c'est autre chose.
Merci pour toutes vos réponses.
Hors ligne
Bonjour
Pour manipuler des fichiers XML, j'utilise LXML
http://lxml.de/tutorial.html
Notamment pour utiliser des expressions XPATH
Mais ca devrait aussi permettre de générer des fichiers comme bon vous
semble.
Cordialement.
Le jeu. 05 juil. 2012 12:36:02 CEST, Eric Francis a écrit :
> Salut,
> Merci pour votre aide. Je viens de résoudre le problème. La fonction
>
return render_to_response('myapp/index.html', {"foo": "bar"},
> mimetype="application/xhtml+xml")
> marche bien. En fait, j'avais une erreur au niveau de mon query qui ne
> retournait pas d'objets. Et du coup, mon dictionnaire était vide.
> Je souhaite maintenant que ce fichier soit directement disponible en en
> sortir téléchargéable et c'est autre chose.
> Merci pour toutes vos réponses.
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
--
HaveFnuBB - Forum Open Source produit avec le framework Jelix PHP5 -
http://www.havefnubb.org
Jelix PHP5 Framework - http://jelix.org
Le Grin de Sable : http://www.foxmask.info
Hors ligne
Bonjour,
Merci FoxMaSk pour le lien. Je n'ai pas assez de connaissances en python - xml. Je vais m'y mettre.
Merci
Hors ligne