Django にはlist_editable
. is_active
フラグを編集する必要があります。
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from django.contrib import admin
from django.db.models import Q
from django import forms
class MyUserAdminForm(forms.ModelForm):
class Meta:
model = User
#def clean_is_active(self):
# do something that validates your data
# print ' I am here... '
# print self.cleaned_data
# print self
def clean(self):
k = 1
class MyUserAdmin(UserAdmin):
list_display = ["id", "username", "email", "is_staff", "is_superuser", "is_active", "date_joined"]
search_fields = ["username", "email"]
list_display_links = ["id", "username"]
list_editable = ("is_active",)
list_per_page = 50
form = MyUserAdminForm
# Had to unregister the User so it could be registered with MyUserAdmin
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
これを に入れ、コードadmin.py
を登録しました。admin.ModelAdmin
表示は問題ありません。それでMyUserAdmin
うまくいっています。
clean メソッドのため、このコードは失敗するはずです。しかし、そうではありませんでした。MyUserAdminForm
どうやら使っていないようです。is_active をきれいにする必要があります。
ありがとう。
admin.ModelAdmin
ではなくから継承したことに注意してくださいUsreAdmin
。ありとあらゆる組み合わせを使い尽くした……。
アップデート
このコードは、オプションではなく、編集ページにのみ役立つと思いlist_editable
ます。