44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
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 = "Отклонить выбранные комментарии"
|
||
|
||
|