[어드민] 할인율, 할인가격

hyuckhoon.ko·2020년 11월 30일
0

임의의 제품의 가격 변동을 추적하는 테이블을 어드민에 배치해야 했다.
어드민에서는 해당 제품의 가격을 변경한다.

ex) 4500000 --> 4250000

변경 사항을 저장하면,
자동으로 price_history테이블에도 가격, 할인율, 할인금액, 수수료, 수익금 등의 정보가 생성되게 했다.




특히,

어드민에서 해당 정보를 볼 수 있게 배치하는 코드는 아래와 같다.


class InlinePriceHistory(admin.TabularInline):

    def display_time(self, obj):
        created_at = obj.created_at
        created_at = timezone.localtime(created_at)
        created_at = created_at.strftime(
                '%Y년 %m월 %d일 %p %I시 %M분'
            )
        return created_at
    display_time.short_description = "할인 적용 시점"

    model = PriceHistory
    max_num = 2
    readonly_fields = (
        "price",
        "discounted_percentage",
        "discounted_amount",
        "commission",
        "profits",
        "display_time",
    )


class ProductAdmin(ExportMixin, admin.ModelAdmin):
    """Admin for Product"""

    inlines = [
        --중략--
        InlinePriceHistory,
        --중략--
    ]



기능 구현을 위한 코드 작성보다

admin 페이지 코드를 작성할 때가 좀 더 객관적이게 되는 것 같다.
마치 전지적 작가시점이랄까......


"해당 테이블 명을 OO으로 바꾸면, 운영팀에서 내 의도를 바로 이해하겠지?"

"가격 변동표를 어드민 페이지 중 어디에 배치시켜야 자연스럽게 보일까?"

"운영팀에서 과연 이 테이블의 이 필드값을 필요로 할까?"

0개의 댓글