2016-02-19 78 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

相關問題