[장고] 관리자 페이지에서 몇 글자만 출력하지 (글자수 줄이기)
장고(Django)는 강력하고 유연한 웹 프레임워크로, 특히 관리자(admin) 페이지는 사용자 정의가 용이하여 많은 개발자들에게 사랑받고 있습니다. 이 글에서는 장고 관리자 페이지에서 특정 필드의 글자 수를 제한하여 출력하는 방법을 전문가처럼 설명하고자 합니다.
필드 글자수 줄이기의 필요성
관리자 페이지에서 특정 필드의 내용을 모두 출력하게 되면 가독성이 떨어지고 페이지 로딩 속도가 느려질 수 있습니다. 특히, 블로그나 뉴스 사이트처럼 긴 텍스트를 다루는 경우 이러한 문제가 두드러집니다. 따라서 필드 내용을 적절한 길이로 잘라서 보여주는 것이 중요합니다.
장고 템플릿 필터 이용하기
장고는 다양한 템플릿 필터를 제공하여 데이터 출력을 쉽게 제어할 수 있습니다. 그중에서도 truncatechars 필터는 텍스트를 지정한 길이만큼 잘라주는 유용한 필터입니다.
모델에서 필드 잘라내기
먼저, 장고 모델에서 특정 필드를 잘라내기 위해 메서드를 추가해야 합니다. 예를 들어, 블로그 게시글의 내용을 담고 있는 content 필드를 200자로 제한하여 출력하고 싶다면, 다음과 같은 방법을 사용할 수 있습니다.
# in models.py
from django.template.defaultfilters import truncatechars
class Article(models.Model):
"""Manage every single news"""
title = models.CharField(max_length=150, default='')
slug = models.SlugField(max_length=150, null=True)
description = models.CharField(max_length=255)
content = models.CharField(max_length=5000)
@property
def short_content(self):
"""Use this for truncating content field"""
return truncatechars(self.content, 200)
위의 코드에서 short_content라는 속성을 추가하여 content 필드를 200자로 잘라줍니다. truncatechars 필터를 사용하여 이 작업을 간단히 처리할 수 있습니다.
관리자 페이지에서 잘린 내용 표시하기
이제 관리자 페이지에서 잘린 내용을 표시하기 위해 admin.py 파일을 수정해야 합니다. list_display 속성에 short_content 메서드를 추가하여 잘린 내용을 보여줄 수 있습니다.
관리자 코드 수정
# in admin.py
from django.contrib import admin
from .models import Article
class ArticleAdmin(admin.ModelAdmin):
fields = ('title', 'description', 'content', 'id_type',)
list_display = ('id', 'title', 'slug', 'short_content',)
admin.site.register(Article, ArticleAdmin)
위의 코드를 통해 관리자 페이지에서 short_content 필드가 추가되며, content 필드의 첫 200자만 표시됩니다. 이를 통해 긴 텍스트를 깔끔하게 정리하여 가독성을 높일 수 있습니다.
마무리
장고 관리자 페이지에서 필드의 글자 수를 제한하여 출력하는 방법을 알아보았습니다. truncatechars 필터를 사용하여 쉽게 텍스트 길이를 조절할 수 있으며, 이를 통해 관리자 페이지의 가독성을 크게 향상시킬 수 있습니다. 이 방법을 통해 더 나은 사용자 경험을 제공하는 웹 애플리케이션을 개발해 보시기 바랍니다.