2010-12-15 6 views
0

Warum wird beim Versuch, den Wert eines Felds eines Modellobjekts in einer Liste festzulegen, der Wert nicht festgelegt, sondern beim Speichern das Objekt an diesem Index in eine Variable, und dann versuchen, es zu ändern, bin ich erfolgreich? Unten ist ein Beispiel dafür, was ich meine.Die Werte von Feldern von Modellobjekten in Listen können nicht geändert werden

In [64]: profile[0].screen_name = "clutch" 

In [65]: profile[0].screen_name 

In [66]: p = profile[0] 

In [67]: p.screen_name = "clutch" 

In [68]: p.screen_name 
Out[68]: 'clutch' 

Antwort

1

Meine Vermutung ist, dass das Profil in Ihrem Fall keine Liste ist, sondern ein QuerySet. Jedes Mal, wenn Sie es indizieren, führt es die Abfrage für Ihre Datenbank aus, um das Objekt zu erhalten.

Versuchen Sie dies, bevor Sie den Code ein:

profile = list(profile) 

diese Weise die Abfrage ausgeführt und die Ergebnisse sind nun in der Liste.

+0

Ich brauche keine Annahmen über die Objekte, mit denen ich arbeite ... Typ ist mein Freund. Vielen Dank! – IntrepidDude

Verwandte Themen