优化后台 close #153

liangliang 8 years ago
parent 201e483ee9
commit 3038844d6e

@ -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'<a href="%s">%s</a>' % (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)

@ -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'<a href="%s">%s</a>' % (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'<a href="%s">%s</a>' % (link, obj.article.title))
link_to_userinfo.short_description = '用户'
link_to_article.short_description = '文章'

@ -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'<a href="%s">%s</a>' % (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 src="%s" style="width:50px;height:50px"></img>' % (img))
link_to_usermodel.short_description = '用户'
show_user_image.short_description = '用户头像'
class OAuthConfigAdmin(admin.ModelAdmin):

Loading…
Cancel
Save