J'essaie de changer un champ spécifique d'un champ dans un objet que j'ai récupéré d'un appel django db.Django, Python, essayant de changer les valeurs/attributs de champ dans un objet récupéré à partir d'objets DB.all appel, ne fonctionne pas
class Dbobject()
def __init__(self):
dbobject = Modelname.objects.all()
def test (self):
self.dbobject[0].fieldname = 'some new value'
alors je suis en mesure d'accéder à un attribut spécifique comme ceci:
objclass = Dbobject()
fieldvalue = dbobject.dbobject[0].fieldname
mais je veux être en mesure d'utiliser la méthode « test » de la classe dbobject pour essayer de changer la valeur spécifique sur la valeur de l'attribut d'un objet, mais il ne le change pas. Je suis perplexe parce que c'est ainsi que j'ai pensé que je devais changer la valeur d'attribut d'un objet.
Je n'essaie pas de mettre à jour la base de données avec ceci, juste pour changer la valeur dans l'objet, j'ai écrit une autre méthode pour prendre l'objet et l'enregistrer sur la base de données, l'idée est que – Rick
Je suppose que ce que j'essaie de faire est un peu comme émuler l'équivalent d'un appel à get.all qui ne semble pas exister dans Django, je suppose que je ne comprends pas pourquoi je ne peux pas changer les valeurs de l'objet qui est créé à partir des objects.all (juste de mon côté local, car je sais que je ne peux pas l'utiliser pour mettre à jour la base de données – Rick
Vous pouvez modifier la valeur d'instance d'un objet, pas de problème. Quelque chose ne va pas avec vos trucs fantaisie que vous faites. Peut-être que vous manquez un "soi". dans votre méthode init? Peut-être que vous vouliez que la ligne 3 soit self.dbobject = Modelname.objects.all(). Si ce n'est pas ça, alors je ne suis pas sûr de ce que vous faites ici. Il y a certainement un appel à get.all(), c'est comme Person.objects.all(). Pouvez-vous m'aider à comprendre ce que vous demandez, si ce n'est pas ça? – Unoti