from django.contrib import admin from django.contrib.auth import get_user_model from django.contrib.auth.admin import UserAdmin from core.models import Subject, Transaction User = get_user_model() class CustomAdminSite(admin.AdminSite): pass admin_site = CustomAdminSite() admin_site.register(User, UserAdmin) @admin.register(Subject, site=admin_site) class SubjectAdmin(admin.ModelAdmin): list_display = ("name",) search_fields = ("name",) exclude = ("user",) def save_model(self, request, obj, form, change): if not change: obj.user = request.user return super().save_model(request, obj, form, change) def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super().get_search_results(request, queryset, search_term) return queryset.filter(user=request.user), use_distinct @admin.register(Transaction, site=admin_site) class TransactionAdmin(admin.ModelAdmin): list_display = ("subject", "amount", "booking_date",) ordering = ("-booking_date",) search_fields = ("subject__name",) autocomplete_fields = ("subject",) def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super().get_search_results(request, queryset, search_term) return queryset.filter(subject__user=request.user), use_distinct