갈루아의 반서재

기본적으로 장고의 어드민 페이지는 모든 필드를 편집가능한(editable) 상태로 보여준다.

다음과 같이 특정 필드를 편집하지 못하게 readonly 필드로 만들 수 있다.


적용전(편집이 가능한 상태)



아래 예제는 세션 관리 테이블의 경우다.

2행과 같이 readonly 로 만들고 싶은 필드명을 튜플 형태로 기입한다. 


admin.py

1
2
3
4
5
6
7
8
9
10
11
12
13
class MstSessionAdmin(admin.ModelAdmin):
    readonly_fields = ('sessionkey',)
    
    fieldsets = [
        ('Session Key',   {'fields': ['sessionkey']}),
        (None,                 {'fields': ['id']}),
        (None,                 {'fields': ['remote_ip']}),
        (None,                {'fields': ['login_dt']}),
    ]
    list_display = ('sessionkey','usn',  'remote_ip''login_dt')
    list_filter = ['login_dt']
    search_fields = ['id''remote_ip']
    ordering = ('-login_dt',)    
cs



적용 후의 모습으로 readonly 필드로 변경되었음을 확인할 수 있다.