diff --git a/blog/admin.py b/blog/admin.py
index b44c06b..a3197de 100644
--- a/blog/admin.py
+++ b/blog/admin.py
@@ -5,6 +5,8 @@ from pagedown.widgets import AdminPagedownWidget
from django import forms
from django.contrib.auth import get_user_model
from django.utils.translation import ugettext_lazy as _
+from django.urls import reverse
+from django.utils.html import format_html
class ArticleListFilter(admin.SimpleListFilter):
@@ -55,9 +57,11 @@ open_article_commentstatus.short_description = '打开文章评论'
class ArticlelAdmin(admin.ModelAdmin):
- search_fields = ('body',)
+ list_per_page = 20
+ search_fields = ('body','title')
form = ArticleForm
- list_display = ('id', 'title', 'author', 'created_time', 'views', 'status', 'type', 'article_order')
+ list_display = (
+ 'id', 'title', 'author', 'link_to_category', 'created_time', 'views', 'status', 'type', 'article_order')
list_display_links = ('id', 'title')
list_filter = (ArticleListFilter, 'status', 'type', 'category', 'tags')
filter_horizontal = ('tags',)
@@ -65,6 +69,13 @@ class ArticlelAdmin(admin.ModelAdmin):
view_on_site = True
actions = [makr_article_publish, draft_article, close_article_commentstatus, open_article_commentstatus]
+ def link_to_category(self, obj):
+ info = (obj.category._meta.app_label, obj.category._meta.model_name)
+ link = reverse('admin:%s_%s_change' % info, args=(obj.category.id,))
+ return format_html(u'%s' % (link, obj.category.name))
+
+ link_to_category.short_description = '分类目录'
+
# def get_form(self, request, obj=None, **kwargs):
# form = super(ArticlelAdmin, self).get_form(request, obj, **kwargs)
# form.base_fields['author'].queryset = get_user_model().objects.filter(is_superuser=True)
diff --git a/comments/admin.py b/comments/admin.py
index e6834bf..b0cf3f4 100644
--- a/comments/admin.py
+++ b/comments/admin.py
@@ -1,6 +1,8 @@
from django.contrib import admin
# Register your models here.
from .models import Comment
+from django.urls import reverse
+from django.utils.html import format_html
def disable_commentstatus(modeladmin, request, queryset):
@@ -16,8 +18,24 @@ enable_commentstatus.short_description = '启用评论'
class CommentAdmin(admin.ModelAdmin):
- list_display = ('id', 'body', 'author', 'is_enable', 'article', 'last_mod_time')
+ list_per_page = 20
+ list_display = ('id', 'body', 'link_to_userinfo', 'link_to_article', 'is_enable', 'created_time')
list_display_links = ('id', 'body')
list_filter = ('author', 'article', 'is_enable')
exclude = ('created_time', 'last_mod_time')
actions = [disable_commentstatus, enable_commentstatus]
+
+ def link_to_userinfo(self, obj):
+ info = (obj.author._meta.app_label, obj.author._meta.model_name)
+ link = reverse('admin:%s_%s_change' % info, args=(obj.author.id,))
+ return format_html(
+ u'%s' % (link, obj.author.nickname if obj.author.nickname else obj.author.email))
+
+ def link_to_article(self, obj):
+ info = (obj.author._meta.app_label, obj.author._meta.model_name)
+ link = reverse('admin:%s_%s_change' % info, args=(obj.article.id,))
+ return format_html(
+ u'%s' % (link, obj.article.title))
+
+ link_to_userinfo.short_description = '用户'
+ link_to_article.short_description = '文章'
diff --git a/oauth/admin.py b/oauth/admin.py
index f86365e..ddeff0c 100644
--- a/oauth/admin.py
+++ b/oauth/admin.py
@@ -1,12 +1,45 @@
from django.contrib import admin
# Register your models here.
from .models import OAuthUser, OAuthConfig
+from django.urls import reverse
+from django.utils.html import format_html
+import logging
+
+logger = logging.getLogger(__name__)
class OAuthUserAdmin(admin.ModelAdmin):
- list_display = ('id', 'author', 'nikename', 'type', 'picture', 'email',)
+ search_fields = ('nikename', 'email')
+ list_per_page = 20
+ list_display = ('id', 'nikename', 'link_to_usermodel', 'show_user_image', 'type', 'email',)
list_display_links = ('id', 'nikename')
list_filter = ('author', 'type',)
+ readonly_fields = []
+
+ def get_readonly_fields(self, request, obj=None):
+ return list(self.readonly_fields) + \
+ [field.name for field in obj._meta.fields] + \
+ [field.name for field in obj._meta.many_to_many]
+
+ def has_add_permission(self, request):
+ return False
+
+ def has_delete_permission(self, request, obj=None):
+ return False
+
+ def link_to_usermodel(self, obj):
+ if obj.author:
+ info = (obj.author._meta.app_label, obj.author._meta.model_name)
+ link = reverse('admin:%s_%s_change' % info, args=(obj.author.id,))
+ return format_html(
+ u'%s' % (link, obj.author.nickname if obj.author.nickname else obj.author.email))
+
+ def show_user_image(self, obj):
+ img = obj.picture
+ return format_html(u'
' % (img))
+
+ link_to_usermodel.short_description = '用户'
+ show_user_image.short_description = '用户头像'
class OAuthConfigAdmin(admin.ModelAdmin):