Chcę, aby administratorzy byli powiadamiani o usunięciu niektórych obiektów, ale chcę również określić, który użytkownik wykonuje usuwanie.Django: określ, który użytkownik usuwa podczas używania sygnału post_delete.
Czy to możliwe?
Jest to kod:
# models.py
# signal to notify admins when nodes are deleted
from django.db.models.signals import post_delete
from settings import DEBUG
def notify_on_delete(sender, instance, using, **kwargs):
''' Notify admins when nodes are deleted. Only for production use '''
if DEBUG:
#return False
pass
# prepare context
context = {
'node': instance,
'site': SITE
}
# notify admins that want to receive notifications
notify_admins(instance, 'email_notifications/node-deleted-admin_subject.txt', 'email_notifications/node-deleted-admin_body.txt', context, skip=False)
post_delete.connect(notify_on_delete, sender=Node)
Czy nie byłoby lepiej, gdyby sygnał wystrzelone przez model zamiast z widok? W związku z tym interfejs administratora i kod strony trzeciej nadal by działał? –
@Jack M. Myślę, że byłoby lepiej, ale jak się dowiedzieć, który "Użytkownik" robi usuwanie bez "żądania"? –