mirror of
https://github.com/barkeser2002/offline-db.git
synced 2026-09-25 02:59:54 +03:00
- Removed expensive cross-table join lookups from `search_fields` in `EpisodeAdmin` (`season__anime__title`) and `WatchLogAdmin` (`episode__title`) - These fields previously caused full-scan searches, causing severe performance bottlenecks on large tables. - Confirmed `search_fields` accurately limit to local fields or efficiently indexed foreign key fields. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
26 lines
917 B
Python
26 lines
917 B
Python
from django.contrib import admin
|
|
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
|
from django.contrib.admin import ModelAdmin
|
|
from .models import User, Wallet, WatchLog
|
|
|
|
@admin.register(User)
|
|
class UserAdmin(BaseUserAdmin):
|
|
fieldsets = BaseUserAdmin.fieldsets + (
|
|
(None, {'fields': ('is_premium',)}),
|
|
)
|
|
list_display = ('username', 'email', 'is_staff', 'is_premium')
|
|
list_filter = ('is_staff', 'is_superuser', 'is_active', 'groups', 'is_premium')
|
|
|
|
@admin.register(Wallet)
|
|
class WalletAdmin(ModelAdmin):
|
|
list_display = ('user', 'balance')
|
|
search_fields = ('user__username',)
|
|
list_select_related = ('user',)
|
|
|
|
@admin.register(WatchLog)
|
|
class WatchLogAdmin(ModelAdmin):
|
|
list_display = ('user', 'episode', 'duration', 'watched_at')
|
|
list_filter = ('watched_at',)
|
|
search_fields = ('user__username',)
|
|
list_select_related = ('user', 'episode__season__anime')
|