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保存对象(),而不是做超级通话? –