py/django
django admin에서 필드 (어드민)상속받기
jm_p_op
2023. 5. 10. 13:29
범용성 좋은 방법
class CommonDisplayAdmin(admin.ModelAdmin):
list_display=()
list_display=()
readonly_fields=()
common_list_display=('created_at','updated_at',"show_status")
common_fields =('created_at','updated_at',"show_status")
common_readonly_fields = ('created_at','updated_at')
def __init__(self, model: type, admin_site):
self.fields+=self.common_fields
self.list_display+=self.common_list_display
self.readonly_fields+=self.common_readonly_fields
super().__init__(model, admin_site)
class PetSitterReviewDisplay(CommonDisplayAdmin):
fields=('writer','sitter','content','star')
list_display=('writer','sitter','content','star')
readonly_fields=('writer','sitter','content','star')
번외 방법
class CommonDisplayAdmin(admin.ModelAdmin):
list_display=('created_at','updated_at',"show_status")
fields =('created_at','updated_at',"show_status")
readonly_fields = ('created_at','updated_at')
class PetSitterReviewDisplay(CommonDisplayAdmin):
def __init__(self, model: type, admin_site):
self.fields=('writer','sitter','content','star')+self.fields
self.list_display=('writer','sitter','content','star')+self.list_display
super().__init__(model, admin_site)
class CommonDisplayAdmin(admin.ModelAdmin):
list_display=('created_at','updated_at',"show_status")
fields =('created_at','updated_at',"show_status")
readonly_fields = ('created_at','updated_at')
class PetSitterReviewDisplay(CommonDisplayAdmin):
def get_list_display(self, request: HttpRequest) -> Sequence[str]:
return ('writer','sitter','content','star')+self.list_display
def get_fields(self, request: HttpRequest,obj):
return ('writer','sitter','content','star')+self.fields
#list_display = ('writer','sitter','content','star')
#fields =('writer','sitter','content','star')