- web/: React + Vite + TypeScript 前端 - backend/: Django + DRF + SimpleJWT 后端 - prototype/: HTML 设计原型 - docs/: PRD 和设计评审文档 - test: 单元测试 + E2E 极限测试
24 lines
888 B
Python
24 lines
888 B
Python
from django.contrib import admin
|
|
from .models import GenerationRecord, QuotaConfig
|
|
|
|
|
|
@admin.register(GenerationRecord)
|
|
class GenerationRecordAdmin(admin.ModelAdmin):
|
|
list_display = ('task_id', 'user', 'mode', 'model', 'duration', 'seconds_consumed', 'status', 'created_at')
|
|
list_filter = ('status', 'mode', 'model', 'created_at')
|
|
search_fields = ('user__username', 'prompt', 'task_id')
|
|
readonly_fields = ('task_id', 'created_at')
|
|
date_hierarchy = 'created_at'
|
|
|
|
|
|
@admin.register(QuotaConfig)
|
|
class QuotaConfigAdmin(admin.ModelAdmin):
|
|
list_display = ('default_daily_seconds_limit', 'default_monthly_seconds_limit', 'announcement_enabled', 'updated_at')
|
|
|
|
def has_add_permission(self, request):
|
|
# Singleton: only allow one record
|
|
return not QuotaConfig.objects.exists()
|
|
|
|
def has_delete_permission(self, request, obj=None):
|
|
return False
|