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']