/ / w administratorze Django skąd wiadomo, że boolean jest ustawione na true tylko po raz pierwszy - django, django-admin, zapisz

w administratorze Django skąd mogę wiedzieć, że boolean jest ustawione na true tylko dla pierwszego razu - django, django-admin, zapisz

Mam model, który zawiera pole boolowskie reprezentujące zatwierdzenie elementu lub nie. Chcę wysłać wiadomość e-mail po zaznaczeniu tego pola.

Rozumiem, jak zastąpić metodę zapisu i wysłać wiadomość e-mail, jeśli jest prawdziwa, ale spowoduje to wysłanie e-maila za każdym razem, gdy zostanie zapisany.

Ponieważ chcę wysłać wiadomość e-mail tylko raz, czy istnieje sposób sprawdzenia, czy boolean jest prawdziwy tylko po raz pierwszy?

Dzięki

Odpowiedzi:

3 dla odpowiedzi № 1

To, co robię, polega na tym, że dostaję element w bazie przed zapisaniem i porównuję go z tym, co mam po.

def save(self):
# Only when we update an element. Not when we create it
if self.pk:
# We get the old values of the model
old = Model.objects.get(pk=self.pk)
# If it"s approved and it wasn"t before
if self.approved == True and old.approved == False:
send_mail(...)
super(Model, self).save()

Tak więc wiadomość e-mail zostanie wysłana tylko wtedy, gdy obiekt przejdzie od zatwierdzenia do zatwierdzenia.