DjangoのModelAdmin

よく使うModelAdminのオプションを下記にまとめます

from django.contrib import admin from myproject.myapp.models import Author


class AuthorAdmin(admin.ModelAdmin):
    list_display = ('first_name', 'last_name', 'upper_case_name')
    list_filter = ('is_staff', 'company__name')
    search_fields = ['user__email']
    date_hierarchy = 'author__pub_date'
    read_only_fields = ['pk', f'user',]
    
    @admin.display(description='Name')
    def upper_case_name(self, obj):
        return ("%s %s" % (obj.first_name, obj.last_name)).upper()


admin.site.register(Author,AuthorAdmin)

list_displayではアンダーバー2本記方(__)は使えませんが、@admin.displayデコレータをつけた関数を定義することで柔軟な表示が可能です

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です