2009-08-24 18 views
0

Eine meiner Funktionen gibt ein "msg" -Objekt zurück, das nur eine Zeichenfolge ist.HTTPResponse (msg) Überschreiben!

Ich bekam 2 für Schleifen in der Funktion.

msg='' 

for e in example: 
    msg+= "some crap" 
    msg+= "some crap1" 

    for sl in somelist 
     msg+= v.somevalue 

    msg+="-------------" 

return httpresponse(msg) 

Es gibt ein Beispiel für den Code.

'somelist' enthält zwei Werte ... wenn 'msg' zurückkommt, gibt es nur den zweiten der beiden Werte zurück! Ich bin ziemlich verwirrt.

Antwort

0

Wenn Ihr Code genau so ist, sollte es so funktionieren, wie Sie es wollen. Da dies jedoch eindeutig nicht der tatsächliche Code ist, würde ich annehmen, dass Sie msg = ... irgendwo haben, wenn Sie msg + = ... haben sollten. Dies ist wahrscheinlich der wahrscheinlichste Grund für das Verhalten, das Sie sehen.

Wenn Sie Probleme haben herauszufinden, wo es schief geht, geben Sie einige "print msg" Anweisungen ein und testen Sie es, indem Sie Ihr Django-Projekt im Entwicklungsserver ausführen. Du wirst sehen, wo es schief geht.

1

Ihr Code verwendet sl als Schleifenvariable und zieht dann Werte von v. Ich bin mir nicht sicher, wie sie sich verhalten. Wenn die letzte Nachricht eine Anzahl von Kopien des letzten Wertes enthält, haben Sie wahrscheinlich vergessen, sl und v irgendwie zu verbinden. Wenn es nur eine einzelne Kopie des letzten Werts enthält, dann ist die Codezeile, die an msg angehängt wird, möglicherweise außerhalb der Schleife. Dies würde bedeuten, dass nichts angehängt wird, wenn die Schleife fortschreitet, und sobald sie beendet ist, wird der letzte Wert angehängt.