如何注册已在admin中注册的模型?

dow*_*123 8 django django-admin django-admin-tools

我正在尝试更改django包中的字段管理中的字段顺序(其余框架)

我定义了一个新的管理员,但得到了"已经注册的模型"错误.当然必须有办法做到这一点?

from rest_framework.authtoken.models import Token
class AuthTokenAdmin(admin.ModelAdmin):
    list_display = ('user', 'key',)


admin.site.register(Token, AuthTokenAdmin)
Run Code Online (Sandbox Code Playgroud)

kar*_*ikr 12

发生此错误的原因是,该类Token已经在管理员类中注册,如下所示:

from django.contrib import admin
from rest_framework.authtoken.models import Token


class TokenAdmin(admin.ModelAdmin):
    list_display = ('key', 'user', 'created')
    fields = ('user',)
    ordering = ('-created',)


admin.site.register(Token, TokenAdmin)
Run Code Online (Sandbox Code Playgroud)

要更改此设置,首先需要unregister对给定的类进行旧的管理员注册,然后注册新的.

试试这个:

admin.site.unregister(Token) #First unregister the old class
admin.site.register(Token, AuthTokenAdmin) #Then register the new class
Run Code Online (Sandbox Code Playgroud)

  • 我最终进入了一些有线循环:没有:`admin.site.unregister(Token)`我得到了`模型令牌已经注册了`我得到了'模型令牌没有注册'.我正在使用django仪表板,我在那里注册:'rest_framework.authtoken.Token', (3认同)
  • 嗨,@ andi,您的问题可能是INSTALLED_APPS设置中应用程序的顺序。将您的自定义应用程序保持在第三方应用程序之下,以便在已注册的模型上调用“取消注册”。 (3认同)