Modelle sind Objekte, keine Wörterbücher. Setzen Sie Attribute direkt auf sie:
%Vor% Wenn der Attributname dynamisch ist, verwenden Sie setattr
:
Dadurch wird die speicherinterne Kopie des Modells geändert, es werden jedoch keine Datenbankänderungen vorgenommen - dafür müsste Ihr Attribut ein Feld sein und Sie müssten das save
Methode für my_model
. Sie müssen das nicht tun, wenn Sie nur das ändern wollen, was die Vorlage in ihrem Kontext erhält, aber nur der Vollständigkeit halber:
Wörterbücher sind änderbar, wenn Sie tatsächlich ein Wörterbuch haben:
%Vor%Aber nicht alles ist ein Wörterbuch.
Ja, Sie können Werte ändern, aber so wird es nicht gemacht. Django-Modelle sind Python-Klassen mit Modellen zur Darstellung von Feldern. Zum Beispiel dient ein CharField
zum Speichern einer Zeichenfolge in einer Datenbank. Lassen Sie mich demonstrieren ( Code von django docs ):
Wie Sie oben sehen können, ist die Python-Klasse ein benutzerdefiniertes Django-Modell. Es ist mit einer Datenbank verknüpft, und wenn Sie manage.py syncdb
ausführen, interagiert es mit Ihrer Datenbank, um die benötigten Tabellen und Spalten zu erstellen.
Nun, in Ihrem Fall:
%Vor%