Mam pytanie: W administratorze Django, gdy masz model z kolumną (BooleanField) i ustaw go jako edytowalny w admin.py. Czy jest to możliwe, gdy zaznaczysz i zapiszesz, aby wykonać jakieś działanie? Mam obiekt, powiedzmy Ticket, z różnymi polami i innym polem o nazwie Status. Widzę wszystkie jego pola w Django Admin (zarejestruj je w admin.py) i kiedy ustawiam jego status na True i zapisz go, chcę, aby administrator django wysłał e-mail, powiedzmy ... Czy to możliwe, a jeśli ... w jaki sposób ? Bardzo dziękuję ludziom i Wesołych Świąt!
Odpowiedzi:
1 dla odpowiedzi № 1Tak, jest to możliwe przez przesłonięcie metody save_model w klasie ModelAdmin. Możesz znaleźć odpowiednie dokumenty tutaj.
Tak więc, biorąc pod uwagę twój przykład, możesz zrobić coś podobnego do tego:
from django.contrib import admin
class ArticleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
if obj.BooleanModelFieldName == True:
send_email(object.user.email)
obj.save()
Prawdopodobnie będziesz chciał upewnić się, że wiadomość e-mail nie jest wysyłana za każdym razem, gdy zapisywany jest model, ale zawiera bardziej precyzyjną logikę w ramach metody.