14

django パッケージ (残りのフレームワーク) のフィールドの管理者でフィールドの順序を変更しようとしています。

新しい adminmanager を定義しましたが、「Model Already Registered」エラーが発生します。確かにそれを行う方法があるはずですか?

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


admin.site.register(Token, AuthTokenAdmin)
4

1 に答える 1

21

このエラーが発生する理由は、クラスが次のような管理クラス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)

これを変更するには、最初unregisterに指定されたクラスに対して古い管理者登録を行い、次に新しい管理者を登録する必要があります。

これを試して:

admin.site.unregister(Token) #First unregister the old class
admin.site.register(Token, AuthTokenAdmin) #Then register the new class
于 2014-09-21T21:28:37.717 に答える