# -*- coding: utf-8 -*- from django.conf import settings from django.contrib.auth.models import Permission from django.contrib.sites.models import Site from django.core.mail import send_mail domain=Site.objects.filter(pk=1).values('domain')[0]['domain'] def mail2perm(obj, url='', pre='', msg='', perm='change', sender=settings.DEFAULT_FROM_EMAIL, sbj=''): if not msg: if not url: try: url=obj.get_absolute_url() except: pass if url:url='\n\nClick on the link to see details:\n\n http://%s%s' % (domain,url) msg='%s%s' % ( (pre or sbj) , url ) perm=Permission.objects.filter(codename='%s_%s'%(perm,obj._meta.module_name), content_type__app_label=obj._meta.app_label).get() recips=[] for user in perm.user_set.all(): if user.email: recips.append(user.email) send_mail((sbj or 'New '+ obj._meta.verbose_name), msg, sender, recips)