7편 : https://heokknkn.tistory.com/16
안녕하세요 !!
이번엔 Admin쪽에서 models에 대해서 더 공부해보겠습니다 !
먼저 ! 저번 7편에서 너무 Admin쪽이 못생기게 나왔습니다 !! 이것들을 좀 다듬고 꾸미면서 가봅시다 !
@admin.register(models.Community)
class CommunityAdmin(admin.ModelAdmin):
"""Community Admin !"""
# 진짜 어드민 패널에 뿌려주는것 ! fieldsets
fieldsets = (
(
"Basic Info",
{
"fields": (
"name",
"people",
)
},
),
("Last Details", {"fields": ("owner",)}),
)
list_display = (
"name",
"people",
"owner",
)
저번시간에는 fieldsets만 배워봤는데요 !
그러면 Admin에서 목록에서 뿌려주는 항목에 대해서 알아보겠습니다 !
여러분도 위에 코드에서 눈치채셨겠지만 !
list_display
입니다 !
저렇게 써주고 화면을 확인해볼까요?
위에처럼 제가 써준 필드명들을 확인 할 수 있습니다 !!
또한 list_display말고도 여러가지가 있는데요 !
장고에서는 손쉽게 필터기능도 제공합니다 !
저기서 저렇게 이름, 인원, 그룹장들을 각각 클릭이 가능합니다 !
즉 컬럼별로 클릭을 하면 오름차순 / 내림차순에 대해서 정렬을 자동으로 해줍니다 ! 코드에서 별 다른 설정없이요 !!
이번에 더 놀라운 기능인
list_filter
먼저 코드를 봐볼까요??
그냥 단순하게 아래와 같이 입력해보겠습니다
list_filter = (
"name",
"people",
"owner",
)
자 그러면 화면을 봐보겠습니다 !
저런식으로 제가 쓴 것들로 인해서 필터기능이 생겼습니다 !!!
한번 눌러보면서 자기가 등록한것들이 알맞게 나오나 봐주세요 !!!
또한 여기서 저번에 공통부분은 core모델을 사용해주시구요 ^^
그리고 밑에서 GroupRule에 대해서는 community와 관련이 있는 테이블을 만들 때 사용합니다 !
그리고 중요한건 ! 이쪽에서는 꼭 community에 관련된것만 적어주세요 !!! 그렇지 않으면 따로 앱을 만드는게 더더더 괜찮아요 !
저렇게 설정하시고 마이그레이트를 꼭 해주세요 ! 필수 !
# 아이템을 가질 때 ! ( Community가 특별하게 뭔가 옵션을 가질 때?
# 그런데 처음에 데이터베이스에는 영향을 안주려고 사용 )
class AbstractItem(core_models.AbstractTimeStampedModel):
"""Abstract Item"""
name = models.CharField(max_length=80)
class Meta:
abstract = True
class GroupRule(AbstractItem):
"""GroupRule Model Definition"""
class Meta:
verbose_name = "Group Rule"
먼저 위에처럼 등록하고 화면에서 봐볼까요?
밑에와 같이 등록 !
이렇게 하고 Group Rules를 등록 해봅시다 !
이건 ManyToManyField를 이용할겁니다 !!
먼저 화면의 결과를 봅시다 !
위에처럼 ManyToManyField를 사용해서 필드명을 입력해주세요 !
그리고 위에 처럼 fieldsets과 filter_horizontal에 group_rules를 등록해줍시다 !
filter_horizontal는 many to relationships에서 많이 사용됩니다 ! 즉 ManyToManyField에서 등록한 것들을 사용하면 아래와 Chosen group rules 이쪽으로 선택한것들을 옮길 수 잇씁니다 !
결과는 밑에입니다 !
저런식으로 설정이 됐습니다 !!!
한번 등록을 해볼까요??? 참고로 현재 페이지에서 다른 페이지에 있는 녀석들도 등록이 가능합니다 !!!
이게 바로 장고의 힘 !! 너무 똑똑하고 좋습니다 !
자 ! 저렇게 등록이 가능합니다 !!!
한번들 꼭 해보세요 !!
오늘은 여기까지 입니다 !!!
여기선 일단 실습 위주로 했습니다 !
너무 길어지는거 같아고 !!! 그리고 따로 설명하는게 좋을거 같아서 위에서의 중요한 내용은 따로 정리하려고 합니다 !
( 위에서 사용한 내장함수들에 대해서 설명을 좀 짚고 가겠습니다 ! 중요하니까요 !!)
미리 말씀드리면 !
ForeignKey에서 on_delete부분은 따로 포스팅할게요 !!
'IT관련 > Python' 카테고리의 다른 글
[django] list_filter를 이용해서 우리만의 필터링을 만들어보자 ! (feat. SimpleListFilter) (2) | 2022.11.21 |
---|---|
[python] Django의 ForeignKey Field에 대해서 ! (feat. on_delete의 종류 및 역할) (0) | 2022.03.08 |
python의 django를 이용해서 웹을 만들어보자 - 7편 Admin(관리자)편! 외래키(Foreign Key)를 다뤄봅시다! (feat. fieldsets ! ) (0) | 2022.03.07 |
python의 django를 이용해서 웹을 만들어보자 - 6편 공통으로 쓰는부분(core)를 다뤄보자! (0) | 2022.03.03 |
python에서 mysql을 연동해보자 ! (0) | 2022.02.25 |