djnago 管理后台展示调整


1、表的字段展现,过滤,搜索

class MonthCostAdmin(admin.ModelAdmin):
    list_display = ['account', 'month', 'product', 'PaymentAmount', 'comment']   # 需要展现的字段 
    list_filter = ('account', 'month', 'product', 'PaymentAmount', 'comment')  # 过滤的字段
    search_fields = ('account', 'month', 'product' , 'comment') # 搜索字段,注意不能是非字符的字段。
    list_per_page = 20  # 每页显示行数

2、修改django管理后台的标题

在制作django后台的时候,默认的django admin界面标题为django管理,修改方法如下:

# admin.py 文件重写
admin.site.site_header = 'CC攻击预警'
admin.site.site_title = 'CC攻击预警'
admin.site.index_title = 'CC攻击预警'

3、修改应用的名称

settings.py

INSTALLED_APPS = [
    'simpleui',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'cc_app.apps.CcAppConfig',  ## 注册应用这里不能简写为cc_app
]

应用的apps.py

from django.apps import AppConfig


class CcAppConfig(AppConfig):
    verbose_name = u'访问量异常'
    name = 'cc_app'
# 应用下的__init__.py添加如下:
default_app_config = 'cc_app.apps.CcAppConfig'

4、修改表的显示名称

class ChallengeCollapsar(models.Model):
    domain = models.CharField(max_length=50, verbose_name='告警域名')
    request_ip = models.CharField(max_length=15, verbose_name='请求IP')
    request_location = models.CharField(max_length=15, verbose_name='IP属地', default='')
    count_per_minute = models.IntegerField(verbose_name='每分钟请求次数')
    start_time = models.DateTimeField(verbose_name='请求开始时间')
    end_time = models.DateTimeField(verbose_name='请求结束时间')
    uri_info = models.TextField(verbose_name='请求URI')

    class Meta:
        db_table = 'cc_ips'  # 自定义数据库表名称
        verbose_name = '访问量异常表'  # 在后台显示的名字
        verbose_name_plural = '访问量异常表'  # 去掉复数后面的s

    def __str__(self):
        return self.request_ip

5、添加导入导出功能

# 安装django-import-export
pip install django-import-export
# 修改settings.py
INSTALLED_APPS = [
    'simpleui',
    'import_export',  # 添加此应用
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'cc_app.apps.CcAppConfig',
    'protect_app.apps.ProtectAppConfig',
]
# 修改admin.py
from django.contrib import admin
from import_export.admin import ImportExportModelAdmin  
# Register your models here.
from .models import ChallengeCollapsar, ApiInfo


class ChallengeCollapsarAdmin(ImportExportModelAdmin):
    list_display = ('server_ip', 'domain', 'request_ip', 'request_location', 'count_per_minute', 'start_time', 'end_time', 'uri_info')
    search_fields = ('server_ip', 'domain', 'request_ip', 'request_location', 'count_per_minute', 'start_time', 'end_time', 'uri_info')
    list_filter = ('server_ip', 'domain', 'request_ip', 'request_location', 'count_per_minute', 'start_time', 'end_time', 'uri_info')
admin.site.register(ChallengeCollapsar, ChallengeCollapsarAdmin)

6、添加logEntry 记录后台操作日志

在admins.py 添加如下

from django.contrib.admin.models import LogEntry

@admin.register(LogEntry, )
class LogEntryAdmin(admin.ModelAdmin):
    list_display = ['object_repr', 'object_id', 'action_flag', 'user', 'change_message']