Vous n'êtes pas identifié(e).
Bonsoir,
Je suis en train de réaliser une application web avec Django et je
suis confronté à un problème que je
n'arrive pas à résoudre.
J'utilise une vue pour créer un flux JSON qui sera lu via AJAX.
Voici l'appel au raccourci de rendu :
return render_to_response("MatrixMultiplicationData.js", {'cid' : cid
, 'x' : mat1, 'y' : mat2 })
Dans mon répertoire de template, j'ai le fichier
MatrixMultiplicationData.js qui contient :
{% templatetag openbrace %} "cid" : "{{ cid }}" , "x" : {{ x }}, "y" :
{{ y }} {% templatetag closebrace %}
Mon problème est le suivant : lors de l'appel à cette vue, j'obtiens
comme résultat (firefox) :
{ "cid" : '9ae1a0e5a424f61bc96f699e2c584bb6e0e2766e' , "x" : [[1, 2,
3],[1,4,0],[2,2,1]], "y" : [[6,2
,8],[9,1,3],[0,7,6]] }
({cid: "9ae1a0e5a424f61bc96f699e2c584bb6e0e2766e", x: [[1, 2, 3],
[1, 4, 0], [2, 2, 1]], y: [[6,
2, 8], [9, 1, 3], [0, 7, 6]]});
Non, vous ne rêvez pas, il y a deux fois la même chose. Ou plutôt sur
la première ligne, le résultat attendu
et sur la seconde, une répétition (peut etre interne à django) !?
Par ailleurs en modifiant légèrement le template (notez le Q final) :
{% templatetag openbrace %} "cid" : "{{ cid }}" , "x" : {{ x }}, "y" :
{{ y }} {% templatetag closebrace %} Q
Le résultat est bien celui attendu :
{ "cid" : "0dfb15b3fa44e533f9b644a0b01e2237c7286429" , "x" : [[1, 2,
3],[1,4,0],[2,2,1]], "y" : [[6,2
,8],[9,1,3],[0,7,6]] } Q
A votre avis, d'où peut venir ce problème ?
Merci pour votre aide.
Thiébaud
Hors ligne
2009/2/12 Thiébaud Weksteen <tweksteen _AT_ gmail.com>:
> Bonsoir,
>
> Je suis en train de réaliser une application web avec Django et je
> suis confronté à un problème que je
> n'arrive pas à résoudre.
>
> J'utilise une vue pour créer un flux JSON qui sera lu via AJAX<
Ton problème vient de là.
Pourquoi ne pas utiliser des vrais outils pour génerer du json ?
Par exemple simplejson qui sérialise tes objets python. Ce sera
beaucoup beaucoup plus propre et moins source d'erreur.
- benoît
Hors ligne
Je pense que c'est un problème de mimetype
essaye quelque chose comme ca:
return HttpResponse(json, mimetype='application/json')
la variable json étant ici un chaine représentant un objet json
j'ai aussi vu utiliser mimetype='application/javascript'
Richard Moch
http://www.rootsaka.com
2009/2/12 Thiébaud Weksteen <tweksteen _AT_ gmail.com>
> Bonsoir,
>
> Je suis en train de réaliser une application web avec Django et je
> suis confronté à un problème que je
> n'arrive pas à résoudre.
>
> J'utilise une vue pour créer un flux JSON qui sera lu via AJAX.
> Voici l'appel au raccourci de rendu :
> return render_to_response("MatrixMultiplicationData.js", {'cid' : cid
> , 'x' : mat1, 'y' : mat2 })
>
> Dans mon répertoire de template, j'ai le fichier
> MatrixMultiplicationData.js qui contient :
> {% templatetag openbrace %} "cid" : "{{ cid }}" , "x" : {{ x }}, "y" :
> {{ y }} {% templatetag closebrace %}
>
>
> Mon problème est le suivant : lors de l'appel à cette vue, j'obtiens
> comme résultat (firefox) :
>
> { "cid" : '9ae1a0e5a424f61bc96f699e2c584bb6e0e2766e' , "x" : [[1, 2,
> 3],[1,4,0],[2,2,1]], "y" : [[6,2
> ,8],[9,1,3],[0,7,6]] }
> ({cid: "9ae1a0e5a424f61bc96f699e2c584bb6e0e2766e", x: [[1, 2, 3],
> [1, 4, 0], [2, 2, 1]], y: [[6,
> 2, 8], [9, 1, 3], [0, 7, 6]]});
>
> Non, vous ne rêvez pas, il y a deux fois la même chose. Ou plutôt sur
> la première ligne, le résultat attendu
> et sur la seconde, une répétition (peut etre interne à django) !?
> Par ailleurs en modifiant légèrement le template (notez le Q final) :
> {% templatetag openbrace %} "cid" : "{{ cid }}" , "x" : {{ x }}, "y" :
> {{ y }} {% templatetag closebrace %} Q
>
> Le résultat est bien celui attendu :
> { "cid" : "0dfb15b3fa44e533f9b644a0b01e2237c7286429" , "x" : [[1, 2,
> 3],[1,4,0],[2,2,1]], "y" : [[6,2
> ,8],[9,1,3],[0,7,6]] } Q
>
>
> A votre avis, d'où peut venir ce problème ?
> Merci pour votre aide.
> Thiébaud
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
Hors ligne
Bonjour,
Tout d'abord merci pour vos réponses. J'ai suivi les conseils de
Richard et j'ai ajouter le type
mime. J'ai essayer avec application/json et application/javascript
avec le même résultat.
J'ai donc suvi les conseils de Benoit, c-à-d généré directement le
JSON dans la vue
sans passer par des templates. Toujours le même problème :
Voila ma vue dans son intégralité (je lui passe directement une chaîne
de caractère):
def compute(request):
return HttpResponse('{ "cid" :
"de9bb13d51039748f677e69e8a17977713353666", "x" :
[[1,2,3],[1,4,0],[2,2,1]], "y" : [[6,2,8],[9,1,3],[0,7,6]]}',
mimetype='application/json')
Et la réponse de firefox :
{ "cid" : "de9bb13d51039748f677e69e8a17977713353666", "x" :
[[1,2,3],[1,4,0],[2,2,1]], "y" : [[6,2,8],[9,1,3],[0,7,6]]} ({cid:
"de9bb13d51039748f677e69e8a17977713353666", x: [[1, 2, 3], [1, 4, 0],
[2, 2, 1]], y: [[6, 2, 8], [9, 1, 3], [0, 7, 6]]});
Le plus bizarre c'est que dès que je rajoute un caractère devant ou
derrière, le doublon disparait !
Merci pour votre aide.
Thiébaud
Le 12 février 2009 03:48, Richard <richard.moch _AT_ gmail.com> a écrit :
> Je pense que c'est un problème de mimetype
>
> essaye quelque chose comme ca:
>
> return HttpResponse(json, mimetype='application/json')
>
> la variable json étant ici un chaine représentant un objet json
> j'ai aussi vu utiliser mimetype='application/javascript'
>
>
>
> Richard Moch
> http://www.rootsaka.com
>
>
> 2009/2/12 Thiébaud Weksteen <tweksteen _AT_ gmail.com>
>>
>> Bonsoir,
>>
>> Je suis en train de réaliser une application web avec Django et je
>> suis confronté à un problème que je
>> n'arrive pas à résoudre.
>>
>> J'utilise une vue pour créer un flux JSON qui sera lu via AJAX.
>> Voici l'appel au raccourci de rendu :
>> return render_to_response("MatrixMultiplicationData.js", {'cid' : cid
>> , 'x' : mat1, 'y' : mat2 })
>>
>> Dans mon répertoire de template, j'ai le fichier
>> MatrixMultiplicationData.js qui contient :
>> {% templatetag openbrace %} "cid" : "{{ cid }}" , "x" : {{ x }}, "y" :
>> {{ y }} {% templatetag closebrace %}
>>
>>
>> Mon problème est le suivant : lors de l'appel à cette vue, j'obtiens
>> comme résultat (firefox) :
>>
>> { "cid" : '9ae1a0e5a424f61bc96f699e2c584bb6e0e2766e' , "x" : [[1, 2,
>> 3],[1,4,0],[2,2,1]], "y" : [[6,2
>> ,8],[9,1,3],[0,7,6]] }
>> ({cid: "9ae1a0e5a424f61bc96f699e2c584bb6e0e2766e", x: [[1, 2, 3],
>> [1, 4, 0], [2, 2, 1]], y: [[6,
>> 2, 8], [9, 1, 3], [0, 7, 6]]});
>>
>> Non, vous ne rêvez pas, il y a deux fois la même chose. Ou plutôt sur
>> la première ligne, le résultat attendu
>> et sur la seconde, une répétition (peut etre interne à django) !?
>> Par ailleurs en modifiant légèrement le template (notez le Q final) :
>> {% templatetag openbrace %} "cid" : "{{ cid }}" , "x" : {{ x }}, "y" :
>> {{ y }} {% templatetag closebrace %} Q
>>
>> Le résultat est bien celui attendu :
>> { "cid" : "0dfb15b3fa44e533f9b644a0b01e2237c7286429" , "x" : [[1, 2,
>> 3],[1,4,0],[2,2,1]], "y" : [[6,2
>> ,8],[9,1,3],[0,7,6]] } Q
>>
>>
>> A votre avis, d'où peut venir ce problème ?
>> Merci pour votre aide.
>> Thiébaud
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
Hors ligne
Rebonjour,
J'ai finalement trouvé le problème. Il s'agit juste d'un bug de
firebug, qui indique plus
que le résultat de la requête AJAX !
Django est hors de cause
Merci à tous.
Cordialement,
Thiébaud
Le 12 février 2009 09:19, Thiébaud Weksteen <tweksteen _AT_ gmail.com> a écrit :
> Bonjour,
>
> Tout d'abord merci pour vos réponses. J'ai suivi les conseils de
> Richard et j'ai ajouter le type
> mime. J'ai essayer avec application/json et application/javascript
> avec le même résultat.
>
> J'ai donc suvi les conseils de Benoit, c-à-d généré directement le
> JSON dans la vue
> sans passer par des templates. Toujours le même problème :
>
> Voila ma vue dans son intégralité (je lui passe directement une chaîne
> de caractère):
>
> def compute(request):
> return HttpResponse('{ "cid" :
> "de9bb13d51039748f677e69e8a17977713353666", "x" :
> [[1,2,3],[1,4,0],[2,2,1]], "y" : [[6,2,8],[9,1,3],[0,7,6]]}',
> mimetype='application/json')
>
> Et la réponse de firefox :
> { "cid" : "de9bb13d51039748f677e69e8a17977713353666", "x" :
> [[1,2,3],[1,4,0],[2,2,1]], "y" : [[6,2,8],[9,1,3],[0,7,6]]} ({cid:
> "de9bb13d51039748f677e69e8a17977713353666", x: [[1, 2, 3], [1, 4, 0],
> [2, 2, 1]], y: [[6, 2, 8], [9, 1, 3], [0, 7, 6]]});
>
> Le plus bizarre c'est que dès que je rajoute un caractère devant ou
> derrière, le doublon disparait !
>
> Merci pour votre aide.
> Thiébaud
>
> Le 12 février 2009 03:48, Richard <richard.moch _AT_ gmail.com> a écrit :
>> Je pense que c'est un problème de mimetype
>>
>> essaye quelque chose comme ca:
>>
>> return HttpResponse(json, mimetype='application/json')
>>
>> la variable json étant ici un chaine représentant un objet json
>> j'ai aussi vu utiliser mimetype='application/javascript'
>>
>>
>>
>> Richard Moch
>> http://www.rootsaka.com
>>
>>
>> 2009/2/12 Thiébaud Weksteen <tweksteen _AT_ gmail.com>
>>>
>>> Bonsoir,
>>>
>>> Je suis en train de réaliser une application web avec Django et je
>>> suis confronté à un problème que je
>>> n'arrive pas à résoudre.
>>>
>>> J'utilise une vue pour créer un flux JSON qui sera lu via AJAX.
>>> Voici l'appel au raccourci de rendu :
>>> return render_to_response("MatrixMultiplicationData.js", {'cid' : cid
>>> , 'x' : mat1, 'y' : mat2 })
>>>
>>> Dans mon répertoire de template, j'ai le fichier
>>> MatrixMultiplicationData.js qui contient :
>>> {% templatetag openbrace %} "cid" : "{{ cid }}" , "x" : {{ x }}, "y" :
>>> {{ y }} {% templatetag closebrace %}
>>>
>>>
>>> Mon problème est le suivant : lors de l'appel à cette vue, j'obtiens
>>> comme résultat (firefox) :
>>>
>>> { "cid" : '9ae1a0e5a424f61bc96f699e2c584bb6e0e2766e' , "x" : [[1, 2,
>>> 3],[1,4,0],[2,2,1]], "y" : [[6,2
>>> ,8],[9,1,3],[0,7,6]] }
>>> ({cid: "9ae1a0e5a424f61bc96f699e2c584bb6e0e2766e", x: [[1, 2, 3],
>>> [1, 4, 0], [2, 2, 1]], y: [[6,
>>> 2, 8], [9, 1, 3], [0, 7, 6]]});
>>>
>>> Non, vous ne rêvez pas, il y a deux fois la même chose. Ou plutôt sur
>>> la première ligne, le résultat attendu
>>> et sur la seconde, une répétition (peut etre interne à django) !?
>>> Par ailleurs en modifiant légèrement le template (notez le Q final) :
>>> {% templatetag openbrace %} "cid" : "{{ cid }}" , "x" : {{ x }}, "y" :
>>> {{ y }} {% templatetag closebrace %} Q
>>>
>>> Le résultat est bien celui attendu :
>>> { "cid" : "0dfb15b3fa44e533f9b644a0b01e2237c7286429" , "x" : [[1, 2,
>>> 3],[1,4,0],[2,2,1]], "y" : [[6,2
>>> ,8],[9,1,3],[0,7,6]] } Q
>>>
>>>
>>> A votre avis, d'où peut venir ce problème ?
>>> Merci pour votre aide.
>>> Thiébaud
>>> _______________________________________________
>>> django mailing list
>>> django _AT_ lists.afpy.org
>>> http://lists.afpy.org/mailman/listinfo/django
>>
>>
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
>
Hors ligne