เป็นไปได้หรือไม่ที่จะรีเฟรชสถานะของวัตถุ django จากฐานข้อมูล? ฉันหมายถึงพฤติกรรมที่เทียบเท่ากับ:
new_self = self.__class__.objects.get(pk=self.pk)
for each field of the record:
setattr(self, field, getattr(new_self, field))
UPDATE:พบเปิด / สงคราม wontfix ในการติดตาม: http://code.djangoproject.com/ticket/901 ยังไม่เข้าใจว่าทำไมผู้ดูแลไม่ชอบสิ่งนี้
ดูเหมือนว่าฟังก์ชั่นที่ไม่มีความจำเป็น เป็นไปได้อยู่แล้วที่จะค้นหาวัตถุจากฐานข้อมูลอีกครั้ง
—
เตฟาน
ไม่เหมาะสมเนื่องจากวัตถุต้นแบบของ Django เป็นพร็อกซี หากคุณได้รับแถวตารางเดียวกันเป็นสองวัตถุ - x1 = X.objects.get (id = 1) x2 = X.objects.get (id = 1) พวกเขาจะทดสอบเท่ากัน แต่เป็นวัตถุที่แตกต่างกันและสถานะจะไม่ถูกแชร์ คุณสามารถเปลี่ยนได้ทั้งอิสระและบันทึก - บันทึกล่าสุดกำหนดสถานะของแถวในฐานข้อมูล ดังนั้นจึงถูกต้องในการโหลดซ้ำด้วยการมอบหมายอย่างง่าย - x1 = X.objects.get (id = 1) การมีวิธีการโหลดซ้ำจะทำให้หลายคนสรุปผิดว่า x1.f = 'ค่าใหม่'; (x1.f == x2.f) เป็นจริง
—
Paul Whipp
commmit
เสร็จสิ้นการทำธุรกรรมของคุณและไม่ได้ เมื่อคุณทำเช่นนั้นแล้วคุณจะต้องรอให้ธุรกรรม SQL ถัดไปรอ ทำไมทำอย่างนั้น? นานแค่ไหนที่คุณจะรอการทำธุรกรรมต่อไป?