from django.contrib import admin from .models import ReportNote, Song class ReportNoteInline(admin.StackedInline): model = ReportNote extra = 0 @admin.register(Song) class SongAdmin(admin.ModelAdmin): list_display = ('artist', 'title', 'user_name', 'reports') search_fields = ('artist', 'title', 'user__name') inlines = [ReportNoteInline] def reports(self, song): return ReportNote.objects.filter(song=song).count() @staticmethod def user_name(song): try: return song.user.name except AttributeError: return '' @staticmethod def get_readonly_fields(request, obj=None): return [] if request.user.is_superuser else ['hash'] @admin.register(ReportNote) class ReportNoteAdmin(admin.ModelAdmin): list_display = ('song', 'note', 'user') search_fields = ('song__artist', 'song__title', 'user__name')