Kürzlich habe ich ein sehr beunruhigendes Thema entdeckt.Ist das ein Fehler mit variablem Zugriff in Google Application Engine + Django?
Ich habe die folgende Python-Code bekam:
for cat in cats:
cat.pages = ['apple', 'table', 'computer']
template_values = {
'cats': cats
}
path = os.path.join(os.path.dirname(__file__), 'templates/index.html')
self.response.out.write(template.render(path, template_values))
Die index.html django Template wie folgt aussieht:
{% for cat in cats %}
<div>{{ forloop.counter }}</div>
<div>name: {{ cat.cat_name }}</div>
<div>pages: {{ cat.pages|length }}<br>
{% endfor %}
Wenn ich den Code renne über lokal mit dem GAE SDK Ich habe die folgenden Beispiel-Ergebnisse:
1.
name: sample1
pages: 3
2.
name: sample2
pages: 3
usw. Ich kann sogar eine geschachtelte Schleife erstellen, da ich zugreifen kann s cat.pages innerhalb der Schleife. Allerdings, wenn ich diesen Code auf der App Engine hochladen, werde ich die folgenden Ergebnisse erhalten:
1.
name: sample1
pages: 0
2.
name: sample2
pages: 0
Und ich kann gar nicht einmal die cat.pages Variable zugreifen. Was ist falsch an meinem Code? Oder ist das ein Fehler? Es funktioniert lokal wie erwartet, erzeugt aber dieses seltsame Ergebnis nach der Bereitstellung auf GAE-Servern. Jede Hilfe wird geschätzt.
Ich empfehle dringend, eine Art von dump() -Methode oder etwas für Ihre Katze Objekte schreiben und das auf einer einzigen Instanz in einer Vorlage aufrufen. Sie haben ein Systemproblem erkannt, aber keine Maßnahmen ergriffen, um festzustellen, in welchem Stadium der Fehler auftritt. –