시간을내어 감사합니다.Django - 저장 메소드를 재정의 할 때 이전 값과 새 값 사이의 차이점을 확인하십시오
나는 장고 1.4를 사용하고 있으며, 다음과 같은 코드를 가지고있다 : Quest
모델의 오버 라이딩 된 저장 메소드.
@commit_on_success
def save(self, *args, **kwargs):
from ib.quest.models.quest_status_update import QuestStatusUpdate
created = not self.pk
if not created:
quest = Quest.objects.get(pk=self)
# CHECK FOR SOME OLD VALUE
super(Quest, self).save(*args, **kwargs)
나는 이것을하는 현명한 방법을 찾을 수 없었다. 이전 인스턴스 값을 찾기 위해 현재 업데이트하고있는 객체에 대한 새 쿼리를 만들어야한다는 것은 매우 어리석은 일입니다.
더 좋은 방법이 있나요?
감사합니다. 당신이 자신을 그렇게 나 다른 쿼리 이전에 저장 수행해야하므로
시스코
업데이트 컨텍스트 란 무엇입니까? 즉. 모델 또는 ModelForm 등을 통해 직접 볼 수 있습니까? – jondykeman
글쎄,이게 정말 관련이 있니? 인스턴스를 업데이트하는 메서드를 저장 중입니다. 하지만 어쨌든이 호출은 뷰에서 만들어지며 거기에서'quest.save() '를 호출했습니다. – Francisco
나는이를 수행 할 수있는 확실한 방법이 있는지 확신하지 못합니다. 오래된 객체를'save()'메쏘드에 전달하거나'save()'에 쿼리 할 수 있습니다. – Rohan