일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 2
- 알고리즘
- 컴퓨터공학
- 프로그래밍
- 데이터분석
- 웹개발
- 자료구조
- 데이터구조
- 네트워크보안
- 사이버보안
- 인공지능
- 클라우드컴퓨팅
- 파이썬
- 네트워크
- 빅데이터
- 소프트웨어공학
- 코딩
- 딥러닝
- 버전관리
- 프로그래밍언어
- 자바스크립트
- 소프트웨어
- 데이터베이스
- Yes
- I'm Sorry
- 보안
- 컴퓨터비전
- 컴퓨터과학
- 머신러닝
- 데이터과학
- Today
- Total
스택큐힙리스트
Django 모델 관리자의 "list_display"가 ForeignKey 필드의 속성을 표시할 수 있습니까? 본문
나는 Person 모델이 Book와 외래 키 관계가 있는데, author (표준 CharField)에 가장 관심이 있다.
그렇다면, 내 PersonAdmin 모델에서는 book.author를 list_display을 사용하여 표시하고 싶습니다.
class PersonAdmin(admin.ModelAdmin):
list_display = ['book.author',]
나는 그것을 하기 위한 모든 분명한 방법을 시도해 보았지만, 아무것도 작동하지 않는 것 같다.
어떤 제안이 있으신가요?
답변 1
다른 옵션으로는 다음과 같은 검색을 수행할 수 있습니다.
#models.py
class UserAdmin(admin.ModelAdmin):
list_display = (..., 'get_author')
def get_author(self, obj):
return obj.book.author
get_author.short_description = 'Author'
get_author.admin_order_field = 'book__author'
Django 3.2부터는 display() 데코레이터를 사용할 수 있습니다.
#models.py
class UserAdmin(admin.ModelAdmin):
list_display = (..., 'get_author')
@admin.display(ordering='book__author', description='Author')
def get_author(self, obj):
return obj.book.author
답변 2
Django의 ModelAdmin에서 list_display를 사용하여 ForeignKey 필드의 속성을 표시할 수 있을까요?Django는 웹 어플리케이션을 개발하기 위한 프레임워크로, 개발자들이 간편하고 빠르게 웹 어플리케이션을 만들 수 있도록 돕습니다. 이러한 Django 프레임워크에서는 ModelAdmin을 사용하여 관리자 페이지를 만들 수 있습니다. ModelAdmin에서는 list_display를 사용하여 모델의 필드를 정의할 수 있습니다. 하지만 이 list_display에서 ForeignKey 필드의 속성을 표시할 수 있는지에 대해 궁금증이 있는 개발자들이 있습니다.
ForeignKey 필드란 다른 모델과의 관계를 나타내는 필드로, 다른 모델의 Primary Key를 참조합니다. ForeignKey 필드에서는 선택한 모델의 속성을 가져올 수 있습니다. 따라서 list_display에서 ForeignKey 필드의 속성을 표시하는 것은 가능합니다. 하지만 이 때 ForeignKey 필드에 속한 속성 중 어떤 것을 표시할 것인지에 대한 명시적인 정의가 필요합니다.
간단한 예시를 통해 설명해보겠습니다. 만약 Post 모델에서 Category 모델과의 관계를 나타내는 ForeignKey 필드를 가진다고 가정해보겠습니다. Category 모델에서는 name이라는 속성을 가지고 있다고 가정해보겠습니다. 이때 list_display에서 Post 모델의 category 필드를 정의하고 싶다면 list_display = ['category', 'category__name']와 같이 정의할 수 있습니다. 이렇게 하면 Post 모델의 category 필드와 함께 Category 모델의 name 속성도 함께 표시됩니다.
결론적으로, Django의 ModelAdmin에서 list_display를 사용하여 ForeignKey 필드의 속성을 표시할 수 있습니다. 다만, 이때 ForeignKey 필드에 속한 속성 중 어떤 것을 표시할 것인지에 대한 명시적인 정의가 필요하며, 이를 정의하여 사용해야 합니다. 따라서 Django 개발자들은 이를 활용하여 보다 효율적인 웹 어플리케이션을 개발할 수 있습니다.