csv
All checks were successful
Deploy to Server / deploy (push) Successful in 24s

This commit is contained in:
jeremygan2021
2026-02-28 11:47:27 +08:00
parent a5a7e1e03a
commit a280da80a7

View File

@@ -400,7 +400,7 @@ class CommissionLogAdmin(ModelAdmin):
@admin.register(Order)
class OrderAdmin(ModelAdmin):
list_display = ('id', 'customer_name', 'get_item_name', 'total_price', 'status', 'salesperson', 'distributor', 'created_at')
list_filter = ('status', 'salesperson', 'distributor', 'created_at')
list_filter = ('status', ProductTypeFilter, 'config', 'course', 'activity', PriceRangeFilter, 'salesperson', 'distributor', 'created_at')
search_fields = ('id', 'customer_name', 'phone_number', 'wechat_trade_no')
readonly_fields = ('total_price', 'created_at', 'wechat_trade_no')
actions = [export_to_csv, export_to_excel]
@@ -466,6 +466,54 @@ class UserSourceFilter(admin.SimpleListFilter):
return queryset.filter(user__isnull=False)
return queryset
class PriceRangeFilter(admin.SimpleListFilter):
title = '价格区间'
parameter_name = 'price_range'
def lookups(self, request, model_admin):
return (
('0-50', '¥0 - ¥50'),
('50-100', '¥50 - ¥100'),
('100-500', '¥100 - ¥500'),
('500-1000', '¥500 - ¥1000'),
('1000+', '¥1000以上'),
)
def queryset(self, request, queryset):
value = self.value()
if value == '0-50':
return queryset.filter(total_price__gte=0, total_price__lte=50)
elif value == '50-100':
return queryset.filter(total_price__gt=50, total_price__lte=100)
elif value == '100-500':
return queryset.filter(total_price__gt=100, total_price__lte=500)
elif value == '500-1000':
return queryset.filter(total_price__gt=500, total_price__lte=1000)
elif value == '1000+':
return queryset.filter(total_price__gt=1000)
return queryset
class ProductTypeFilter(admin.SimpleListFilter):
title = '商品类型'
parameter_name = 'product_type'
def lookups(self, request, model_admin):
return (
('hardware', '硬件产品'),
('course', '课程'),
('activity', '活动'),
)
def queryset(self, request, queryset):
value = self.value()
if value == 'hardware':
return queryset.filter(config__isnull=False)
elif value == 'course':
return queryset.filter(course__isnull=False)
elif value == 'activity':
return queryset.filter(activity__isnull=False)
return queryset
@admin.register(WeChatUser)
class WeChatUserAdmin(OrderableAdminMixin, ModelAdmin):
list_display = ('nickname', 'phone_number', 'is_star', 'title', 'avatar_display', 'gender_display', 'province', 'city', 'created_at', 'order_actions')