2012-08-10 52 views
1

在django管理员中,当用户被授予超级用户状态时,我希望执行检查。 我想看看用户的电子邮件是否来自* .company.com的形式Django用户保存钩子

这样做的最好方法是什么?

+0

,不能你只是看看电子邮件?您不应该自动添加超级用户。 – q3d 2012-08-10 22:08:35

+0

为了让它正确无误,您希望创建新超级用户的用户拥有特定表单的电子邮件,或者为获得超级用户权限的用户输入的电子邮件具有此表单? – 2012-08-10 22:18:44

+0

@iyrag - 我可以看看电子邮件,但我想以编程方式停止它,以避免用户错误。 – Bharad 2012-08-10 22:38:35

回答

5

创建signal

from django.db.models.signals import post_save 
from django.contrib.auth.models import User 

def check_superuser(sender, instance, signal, *args, **kwargs): 
    if sender is User and instance.is_superuser and not instance.email.endswith('@company.com'): 
     ... 

post_save.connect(check_superuser, sender=User) 

所以,现在,每一个的User一个实例保存时,它会如果通过admin界面添加用户运行上面check_superuser方法