from django.contrib import admin from .models import Category, Article, Comment @admin.register(Category) class CategoryAdmin(admin.ModelAdmin): list_display = ('name', 'slug', 'description') prepopulated_fields = {'slug': ('name',)} search_fields = ('name',) @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): list_display = ('title', 'category', 'author', 'is_published', 'views_count', 'time_create') list_filter = ('is_published', 'category', 'time_create') search_fields = ('title', 'content') prepopulated_fields = {'slug': ('title',)} raw_id_fields = ('author',) # удобно при большом количестве пользователей date_hierarchy = 'time_create' actions = ['make_published', 'make_unpublished'] def make_published(self, request, queryset): queryset.update(is_published=True) make_published.short_description = "Опубликовать выбранные статьи" def make_unpublished(self, request, queryset): queryset.update(is_published=False) make_unpublished.short_description = "Снять с публикации" @admin.register(Comment) class CommentAdmin(admin.ModelAdmin): list_display = ('author_name', 'article', 'is_moderated', 'time_create') list_filter = ('is_moderated', 'time_create') search_fields = ('author_name', 'author_email', 'content') actions = ['approve_comments', 'reject_comments'] def approve_comments(self, request, queryset): queryset.update(is_moderated=True) approve_comments.short_description = "Одобрить выбранные комментарии" def reject_comments(self, request, queryset): queryset.update(is_moderated=False) reject_comments.short_description = "Отклонить выбранные комментарии"