2016-02-19 49 views
1

我正在使用Django 1.6.11,我想在Django管理站点上更改用户模型时基本上添加更多其他行为。目前,我在做什么是这样的admin.pyDjango用户模型:保存时添加额外的行为

from django.contrib.auth.models import User 

class UserAdmin(admin.ModelAdmin): 
    def save_model(self, request, obj, form, change, *args, **kwargs): 
     super(UserAdmin, self).save_model(
      request, obj, form, change, *args, **kwargs) 
     if change and obj.groups.filter(name='GTO').exists(): 
      user_perms = obj.user_permissions.all() 
      print(user_perms) 
      # and do something else 

admin.site.unregister(User) 
admin.site.register(User, UserAdmin) 

与此唯一的问题是obj不包含电流变化:所以如果obj以前不属于'GTO'组。现在有人将该组添加到用户Django管理网站obj.groups.filter(name='GTO').exists()仍将返回Falseuser_perms也不正确地反映为当前更改。

那么我应该如何捕获用户的“当前”状态并做一些事情呢?

+0

放标志使用的m2m_changed信号解决方案在用户表像IS_ACTIVE或东西和访问根据您的病情 –

+0

如何与obj.save保存对象(),而不是做超级通话? –

回答

0

我结束了在User.groups.throughUser.user_permissions.through

相关问题