How-to 장고 관리자 목록 다대다 필드 - Admin list_display ManyToManyField
페이지 정보
본문
장고 관리자 목록 다대다 필드 - Admin list_display ManyToManyField
장고의 관리자 목록 항목에는 다대다 필드 = ManyToMany Field를 열거할 수 없는 것이 디폴트다.
무시하고 다대다 필드명을 삽입하면 다음과 같은 에러메시지가 뜬다.
에러 메시지 예)
The value of 'list_display[1]' must not be a ManyToManyField.
#list_display에서 2번째 항목은 ManyToManyField이므로 오류이다.
관리자페이지에서 다대다 필드를 목록의 항목으로 사용하려면 필드명이 아니라 함수를 작성하고 그 함수명을 list_display에 삽입해야한다.
** admin.py 파일
class PostAdmin(admin.ModelAdmin):
list_display = ('category_list', 'title', 'content', 'created_at', 'updated_at')
list_filter = ('updated_at', 'created_at',)
search_fields = ('title', 'content')
def category_list(self, Category):
return ', '.join(o.name for o in Category.categorys.all())