diff --git a/apps/moderation/admin.py b/apps/moderation/admin.py index 4ff807b..3cb3fc5 100644 --- a/apps/moderation/admin.py +++ b/apps/moderation/admin.py @@ -6,12 +6,27 @@ from .models import AuditLog, ModerationRequest @admin.register(ModerationRequest) class ModerationRequestAdmin(admin.ModelAdmin): list_display = ( - 'content_type', 'object_id', 'user', 'decision', + 'content_type', 'object_id', 'get_user', 'decision', 'moderator', 'created_at', 'decided_at', ) list_filter = ('decision', 'content_type') search_fields = ('comment', 'user__username', 'user__full_name') + @admin.display(description='Пользователь') + def get_user(self, obj): + """Пользователь из поля user, либо выводимый из сущности.""" + if obj.user: + return obj.user + entity = obj.entity + if entity is None: + return None + for attr in ('user', 'author'): + if hasattr(entity, attr): + return getattr(entity, attr) + if hasattr(entity, 'brand'): + return entity.brand.user + return None + @admin.register(AuditLog) class AuditLogAdmin(admin.ModelAdmin):