Có thể hoặc tôi có nên thực hiện điều này trong chế độ xem không?Thay đổi đối tượng QuerySet khi đang bay ở Django
a = SomeTable.objects.all()
for r in a:
if r.some_column == 'foo':
r.some_column = 'bar'
Nó hoạt động như một nhà vô địch, nhưng tôi đã thử một điều tương tự ở một nơi khác và tôi nhận được kết quả lạ, ngụ ý rằng các đối tượng QuerySet không thích bị xáo trộn. Và, tôi không thấy bất cứ điều gì trong các tài liệu tốt hay xấu cho loại lừa này.
Tôi biết có những cách khác để làm điều này, nhưng tôi đặc biệt muốn biết nếu đây là một ý tưởng tồi, tại sao nó xấu, và nếu nó thực sự là xấu, những gì 'tốt nhất' nhất django/pythonic cách để thay đổi giá trị trên bay sẽ được.
Cảm ơn, Daniel. Ví dụ của bạn là chính xác những gì tôi có nghĩa là khi tôi nói "Tôi biết có những cách khác để làm điều này", và tôi đánh giá cao làm rõ của bạn, quá. Oh, và ví dụ của bạn về việc lấy một lát là chính xác những gì đã gây ra những kết quả lạ tôi đã đề cập. Tôi hơi xấu hổ vì tôi không hiểu điều đó, và tôi rất vui vì bạn đã chỉ ra điều đó. Chúc mừng! – proffrink