from django.contrib import admin from .models import Rating @admin.register(Rating) class RatingAdmin(admin.ModelAdmin): list_display = ('content_object', 'user', 'score', 'created_at') list_filter = ('score', 'created_at', 'content_type') search_fields = ('user__username', 'user__email', 'comment') readonly_fields = ('created_at', 'updated_at') # GenericForeignKey alanlarını admin panelinde daha düzgün göstermek için # content_object alanını list_display'e ekledik, bu sayede hangi nesneye oy verildiği görülebilir. def get_queryset(self, request): # N+1 sorununu önlemek için related alanları prefetch edelim return super().get_queryset(request).select_related('user', 'content_type').prefetch_related('content_object')