from django.contrib import admin
from .models import Fcuser
# Register your models here.
class FcuserAdmin(admin.ModelAdmin):
# list_display는 튜플 형식으로서 전달하기 때문에 마지막에 꼭 ,를 붙여줘야 한다
list_display = ('email',)
# ModelAdmin 내부에 이미 changelist_view함수가 만들어져 있다
def changelist_view(self, request, extra_context=None):
# 우리가 원하는 동작을 하고 그 다음에 원래 만들어져 있는 함수를 호출해라
extra_context = {'title': '사용자 목록'}
return super().changelist_view(request, extra_context)
admin.site.register(Fcuser, FcuserAdmin)
admin.site.site_header = "패스트캠퍼스"
admin.site.index_title = "패스트캠퍼스"
admin.site.site_title = "패스트캠퍼스"
from django.contrib import admin
from .models import Order
# 이스케이프를 안통하게 한다!
# html 이스케이프 때문에 태그를 통한 변경을 불가능하게 함
# format_html 함수를 사용하면 html 태그를 사용할 수 있음
from django.utils.html import format_html
# Register your models here.
class OrderAdmin(admin.ModelAdmin):
# 하나짜리 튜플을 만들때는 꼭 ,를 붙여줘야 한다
list_filter = ('status',)
list_display = ('fcuser', 'product', 'styled_status')
# 함수로 만들수 도 있다
# 모델에서 갖고 와서 바로 사용할수 도 있지만 이렇게 함수로도 사용 가능
def styled_status(self, obj):
# obj : 레코드
# f string : python 최신 문법
# 다양한 문자열 연결
# 1. + 연결 : '<b>'+obj.status + '</b>'
# 2. % format : '<b>%s</b>'%(obj.status)
# 3. format 함수 : '<b>{}</b>'.format(obj.status)
# 4. f-string : f'<b>{obj.status}</b>'
if obj.status == '환불':
return format_html(f'<span style="color:red">{obj.status}</span>')
if obj.status == '결제완료':
return format_html(f'<span style="color:green">{obj.status}</span>')
return format_html(f'<span">{obj.status}</span>')
# ModelAdmin 내부에 이미 changelist_view함수가 만들어져 있다
def changelist_view(self, request, extra_context=None):
# 우리가 원하는 동작을 하고 그 다음에 원래 만들어져 있는 함수를 호출해라
extra_context = {'title': '주문 목록'}
return super().changelist_view(request, extra_context)
styled_status.short_description = '상태'
admin.site.register(Order, OrderAdmin)
from django.contrib import admin
from .models import Product
from django.utils.html import format_html
from django.contrib.humanize.templatetags.humanize import intcomma
# Register your models here.
class ProductAdmin(admin.ModelAdmin):
list_display = ('name', 'price_format', 'styled_stock')
def price_format(self, obj):
price = intcomma(obj.price)
return f'{price} 원'
def styled_stock(self, obj):
stock = obj.stock
if stock <= 50:
stock = intcomma(stock)
return format_html(f'<b style="color:red">{stock} 개</b>')
return f'{intcomma(stock)} 개'
# ModelAdmin 내부에 이미 changelist_view함수가 만들어져 있다
def changelist_view(self, request, extra_context=None):
# 우리가 원하는 동작을 하고 그 다음에 원래 만들어져 있는 함수를 호출해라
extra_context = {'title': '상품 목록'}
return super().changelist_view(request, extra_context)
price_format.short_description = '가격'
styled_stock.short_description = '재고'
admin.site.register(Product, ProductAdmin)