Est-ce que je peux ou dois faire cela dans une vue?Modification d'un objet QuerySet à la volée dans Django
a = SomeTable.objects.all()
for r in a:
if r.some_column == 'foo':
r.some_column = 'bar'
Il a travaillé comme un champion, mais j'ai essayé quelque chose de semblable ailleurs et je recevais des résultats étranges, ce qui implique que les objets QuerySet n'aiment pas à la légère. Et, je n'ai rien vu dans les docs, bon ou mauvais pour ce genre de truc.
Je sais qu'il y a d'autres façons de le faire, mais je veux spécifiquement savoir si c'est une mauvaise idée, pourquoi c'est mauvais, et si c'est vraiment mauvais, quelle est la 'meilleure' façon django/pythonique changer les valeurs à la volée serait.
Merci, Daniel. Votre exemple est exactement ce que je voulais dire quand j'ai dit: «Je sais qu'il y a d'autres moyens de le faire», et j'apprécie également votre clarification. Oh, et votre exemple de prendre une tranche est exactement ce qui causait les résultats étranges que j'ai mentionnés. Je suis un peu gêné de ne pas l'avoir compris, et je suis content que vous l'ayez signalé. À votre santé! – proffrink