Files
offline-db/users/admin.py
Barış Keserandgoogle-labs-jules[bot] 33fac7c91d Fix N+1 query issue in Django admin search_fields (#285)
- 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>
2026-03-12 17:56:07 +00:00

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')