dzięki za poświęcony czas.Django - Sprawdź różnicę pomiędzy starą i nową wartością, gdy przesuwasz metodę zapisu
Jestem na Django 1.4 i mam następujący kod: Jest to zastąpiona metoda zapisu dla mojego modelu 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)
Nie mogłem znaleźć inteligentnego sposobu na zrobienie tego. Wydaje mi się bardzo niemądre, aby utworzyć nowe zapytanie dla obiektu, który obecnie aktualizuję, aby znaleźć starą wartość instancji.
Czy jest lepszy sposób to zrobić?
Dziękuję wszystkim.
Francisco
jaki jest kontekst aktualizacji i zapisania? to znaczy. w widoku bezpośrednio na modelu lub za pomocą ModelForm itp.? – jondykeman
Czy to naprawdę istotne? Używam metody zapisu, aktualizując instancję. Ale tak czy inaczej, to wywołanie jest wykonane z widoku i tam nazwałem 'quest.save()' – Francisco
Nie jestem pewien, czy jest na to czysty sposób. Możesz przekazać stary obiekt do metody 'save()' lub przesłać ją do 'save()' podczas jej wykonywania. – Rohan