2 python django django-reversion
您好,我在添加 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
Run Code Online (Sandbox Code Playgroud)
当我想注册模型用户时出现错误
django.contrib.admin.sites.AlreadyRegistered: The model User is already registered
Run Code Online (Sandbox Code Playgroud)
如何将 django-reversion 和 django-reversion-compare 与 User 模型一起使用?
auth.User 模型已经在 django admin 中注册,这就是您看到错误的原因。为了避免它,你有两个选择:
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)
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
745 次 |
最近记录: |