58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
from django.contrib import admin
|
|
from .models import Article, Comment, Like, Rating, Favorite
|
|
|
|
|
|
@admin.register(Article)
|
|
class ArticleAdmin(admin.ModelAdmin):
|
|
list_display = ['title', 'region', 'content_type', 'author', 'moderator_status', 'ai_status', 'publish_status', 'created_at']
|
|
list_filter = ['content_type', 'moderator_status', 'ai_status', 'publish_status']
|
|
search_fields = ['title', 'content', 'author__username']
|
|
ordering = ['-created_at']
|
|
readonly_fields = ['moderator_reviewed_at', 'ai_reviewed_at']
|
|
|
|
|
|
@admin.register(Comment)
|
|
class CommentAdmin(admin.ModelAdmin):
|
|
list_display = ['author', 'get_object', 'ai_status', 'is_visible', 'created_at']
|
|
list_filter = ['ai_status', 'is_visible']
|
|
search_fields = ['content', 'author__username']
|
|
ordering = ['-created_at']
|
|
|
|
def get_object(self, obj):
|
|
return obj.article or obj.service
|
|
get_object.short_description = '对象'
|
|
|
|
|
|
@admin.register(Like)
|
|
class LikeAdmin(admin.ModelAdmin):
|
|
list_display = ['user', 'get_object', 'created_at']
|
|
search_fields = ['user__username']
|
|
ordering = ['-created_at']
|
|
|
|
def get_object(self, obj):
|
|
return obj.article or obj.service
|
|
get_object.short_description = '对象'
|
|
|
|
|
|
@admin.register(Rating)
|
|
class RatingAdmin(admin.ModelAdmin):
|
|
list_display = ['user', 'get_object', 'score', 'created_at']
|
|
list_filter = ['score']
|
|
search_fields = ['user__username', 'comment']
|
|
ordering = ['-created_at']
|
|
|
|
def get_object(self, obj):
|
|
return obj.region or obj.service
|
|
get_object.short_description = '对象'
|
|
|
|
|
|
@admin.register(Favorite)
|
|
class FavoriteAdmin(admin.ModelAdmin):
|
|
list_display = ['user', 'get_object', 'created_at']
|
|
search_fields = ['user__username']
|
|
ordering = ['-created_at']
|
|
|
|
def get_object(self, obj):
|
|
return obj.region or obj.service
|
|
get_object.short_description = '对象'
|