티스토리 뷰
장고 admin.py 에는 각 model field 의 값고 필터링, 검색, 특정함수를 정의해서 사용할 수있다.
아래 코드에 요소들을 하나씩 살펴보자
[list_display]
models.py 에 어떤 field 들을 보여줄지 정의하는 곳이다.
field 이름을 직접 써주어도 되고 함수를 적어줘도 된다.
함수를 적어주면 함수명이 표기되고 리스트에는 리턴값이 표시된다.
함수는 weight_comma 의 경우를 살펴보자.
return intcomma(product.weight)
함수의 리턴값을 어드민 페이지에 표시한다.
intcomma 는 숫자를 세자리마다(예: 1,000) 콤마를 찍는 것이라서 가독성이 좋다.
아래 코드를 상단에 선언해 주자.
리스트 뷰에서는 3번째 인자가 amount_comma 로 보이는데
amount_comma.short_description = '총 수량(박스)'
이렇게 정의해 주면 '총 수량(박스)' 로 보이게 된다.
아래 언급할 actions 에서도 동일하게 적용할 수 있다.
[ordering]
orderby 처럼 말 그대로 정렬을 어떻게 하냐는 건데 보통 -id 하면 최신순이고
id 로 하면 그것의 역순이다.
이것도 원하는 field 를 정의해주고 내림차순일 경우 field 명 앞에 - 를 붙여 주면된다.
id 는 알다시피 자동으로 생성되는 pk 와 동일한 방식으로 생성된다.
[list_per_page]
한 페이지에 몇개의 리스트가 들어가는지 정의한다.
기본값으로 100으로 지정되어 있다.
보기 편한대로 지정해 주면 된다.
[list_editable]
리스트의 내용을 수정하려면 리스트를 클릭하여 변경해주어야 한다.
빈번히 변경되는 것이라면 번거로울 수 있다.
여기에 추가해 놓는다면 해당 리스트에 진입하지 않고 리스트뷰에서
바로 변경할 수 있다.
[search_fields]
리스트에서 특정 field를 검색하고 싶을때 해당 field 를 추가해 주면 된다.
예를들어서 name 이라는 field 에서 특정 이름을 검색하고 싶을때 추가해 주면된다.
단 foregnkey 는 추가해주면 오류가 발생한다.
[readonly_fields]
특정 field 를 read 만되고 변경이 안되도록 할 수 있다. models.py 에서
editable=false 는 아예 보이지 않지만 이것은 보이지만 변경할 수가 없다.
[actions]
리스트뷰에서 특정 필드를 선택하고 선택된 리스트를 queryset 으로 받아서
특정 함수를 실행할 수 있다.
request 도 인자로 받기 때문에 유저권한에 따라 제한이 가능하다.
actions = ['download']
여기서 함수 명을 지정해 주고
함수를 정의해 주면된다.
download.short_description = '다운로드'
'다운로드' 로 버튼을 정의하려면 description 을 위와 같이 정의해 주면 된다.
'development > django' 카테고리의 다른 글
[django] kakaotalk chatbot 구현 (0) | 2018.04.15 |
---|---|
[django] apache2 연동 (0) | 2018.04.13 |
[django] 장고 설치하기 (0) | 2018.04.13 |
- Total
- Today
- Yesterday
- Python
- GIT
- chatbot
- admin.py
- 플러스친구 자동응답
- 파이썬
- 면접답변
- 장고
- pycrypto
- 장고 플러스친구 자동응답
- 문과 코딩
- 이미지 비교
- 파이썬 프로그래밍
- 엑셀 비교
- 파이썬 강좌
- PuTTYGen
- 장고 카톡 자동응답
- virtualenv
- gitlab
- django
- 모바일 테마 적용
- Tistory
- 문서 비교
- gitignore
- django chatbot
- 모바일 스킨 적용
- 파이썬 입문
- wsgi
- 파이썬 독학
- 면접정답
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |