【问题标题】:django-reversion and django-reversion-compare with User modeldjango-reversion 和 django-reversion-compare 与用户模型
【发布时间】:2018-01-30 08:16:57
【问题描述】:

您好,我在添加 django-reversion 和 django-reversion-compare 模块时遇到了一些问题。

我创建了新项目,我想使用 django-reversion 跟踪 user_auth 日志更改(在使用 django-reversion 注册用户模型后,我想使用 django-reversion-compare)。

from django.contrib import admin
from django.contrib.auth.models import User
from reversion.admin import VersionAdmin


@admin.register(User)
class UserModelAdmin(VersionAdmin):
pass

当我想注册模型用户时出现错误

django.contrib.admin.sites.AlreadyRegistered: The model User is already registered

如何将 django-reversion 和 django-reversion-compare 与用户模型一起使用?

【问题讨论】:

    标签: python django django-reversion


    【解决方案1】:

    auth.User 模型已在 django 管理员中注册,这就是您看到错误的原因。为避免这种情况,您有两种选择:

    A.取消注册用户管理员,然后再次将其注册为 VersionAdmin:类似这样:

    from django.contrib import admin
    from django.contrib.auth.models import User
    from reversion.admin import VersionAdmin
    
    admin.site.unregister(User) 
    admin.site.register(User, VersionAdmin) 
    

    B.使用 django-reversion (https://django-reversion.readthedocs.io/en/stable/api.html#registration-api) 的注册接口注册模型,无需修改管理员,例如:

    import reversion
    from django.contrib.auth.models import User
    
    reversion.register(User)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2011-12-23
      • 2017-09-23
      • 1970-01-01
      • 2011-02-24
      • 2014-10-02
      • 1970-01-01
      相关资源
      最近更新 更多