Изменение объекта QuerySet на лету в Django

Могу или должен ли я когда-либо делать это в представлении ?

a = SomeTable.objects.all()
for r in a:
    if r.some_column == 'foo':
        r.some_column = 'bar'

Это сработало как чемпион, но я попробовал нечто подобное в другом месте и получил странные результаты, подразумевая, что объекты QuerySet не любят, когда с ними шутят. И я не видел в документах ничего хорошего или плохого для такого рода трюков.

Я знаю, что есть другие способы сделать это, но я особенно хочу знать, является ли это плохой идеей, почему это плохо, и если это действительно плохо, какой «лучший» самый лучший способ django/pythonic изменение значений на лету было бы.

5
задан proffrink 15 March 2012 в 01:45
поделиться