Apakah mungkin untuk menyegarkan keadaan objek Django dari database? Maksud saya perilaku kira-kira setara dengan:
new_self = self.__class__.objects.get(pk=self.pk)
for each field of the record:
setattr(self, field, getattr(new_self, field))
UPDATE: Menemukan perang membuka kembali / memperbaiki wont di pelacak: http://code.djangoproject.com/ticket/901 . Masih tidak mengerti mengapa pengelola tidak menyukai ini.
Ini sepertinya fungsi yang tidak perlu; sudah dimungkinkan untuk hanya melihat kembali objek dari database.
—
Stephan
Itu tidak tepat karena objek model Django adalah proxy. Jika Anda mendapatkan baris tabel yang sama menjadi dua objek - x1 = X.objects.get (id = 1); x2 = X.objects.get (id = 1), mereka akan menguji sama tetapi mereka adalah objek yang berbeda dan negara tidak dibagikan. Anda dapat mengubah keduanya secara mandiri dan menyimpannya - yang terakhir disimpan menentukan status baris dalam database. Oleh karena itu benar untuk memuat ulang dengan tugas sederhana - x1 = X.objects.get (id = 1). Memiliki metode memuat ulang akan menyebabkan banyak orang salah menyimpulkan bahwa x1.f = 'nilai baru'; (x1.f == x2.f) Benar.
—
Paul Whipp
commmit
. Setelah Anda selesai melakukannya, Anda harus menunggu untuk melakukan transaksi SQL berikutnya. Kenapa melakukan itu? Berapa lama Anda akan menunggu transaksi selanjutnya?