1
我正在使用Django 1.6.11,我想在Django管理站點上更改用戶模型時基本上添加更多其他行爲。目前,我在做什麼是這樣的admin.py
Django用戶模型:保存時添加額外的行爲
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()
仍將返回False
。 user_perms
也不正確地反映爲當前更改。
那麼我應該如何捕獲用戶的「當前」狀態並做一些事情呢?
放標誌使用的m2m_changed信號解決方案在用戶表像IS_ACTIVE或東西和訪問根據您的病情 –
如何與obj.save保存對象(),而不是做超級通話? –