自定义 Admin 样式与功能
1 页面修改中文
1.1 语言设置为中文
settings.py
LANGUAGE_CODE = 'zh-hans'
修改结果
1.2 应用管理设置为中文
应用/apps.py
from django.apps import AppConfig class BbssConfig(AppConfig): name = 'bbs' # 添加下面这句 verbose_name = 'BBS系统'
修改结果
1.3 数据库表设置为中文
应用/models.py
class Comment(models.Model): topic = models.ForeignKey(Topic, on_delete=models.CASCADE) comment_text = models.TextField(max_length=2000) author = models.ForeignKey(User, default=1, on_delete=models.CASCADE) picture = models.FileField(blank=True, null=True) # 添加文件类型字段,并默认为空 pub_date = models.DateTimeField(auto_now_add=True) def get_comment_text_md(self): """将markdown格式转化为html""" return mark_safe(markdown(self.comment_text)) def __str__(self): return self.comment_text class Meta: verbose_name = '评论' # 单数时显示内容 verbose_name_plural = '评论' # 复数时显示内容
默认数据库表在后台中显示都为复数形式,而中文没有复数形式,因此将两种形式都设置为相同名称
修改结果
1.4 数据库表字段名称修改为中文
应用/models.py
class Comment(models.Model): topic = models.ForeignKey(Topic, on_delete=models.CASCADE, verbose_name='话题') comment_text = models.TextField('评价内容', max_length=2000) author = models.ForeignKey(User, default=1, on_delete=models.CASCADE, verbose_name='用户') picture = models.FileField('图片', blank=True, null=True) # 添加文件类型字段,并默认为空 pub_date = models.DateTimeField('发布时间', auto_now_add=True) def get_comment_text_md(self): """将markdown格式转化为html""" return mark_safe(markdown(self.comment_text)) def __str__(self): return self.comment_text class Meta: verbose_name = '评论' # 单数时显示内容 verbose_name_plural = '评论' # 复数时显示内容
一般的字段只需加个显示名称的位置参数就可以,而一对多关系的要指定关键字参数 verbose_name
,并且关键字参数要放在位置参数后面
修改结果
2 修改后台样式
使用 django-grappelli 第三方应用进行修改admin样式
GitHub:https://github.com/sehmaschine/django-grappelli
文档:https://django-grappelli.readthedocs.io/en/latest/quickstart.html
其他工具:https://djangopackages.org/grids/g/admin-interface/
2.1 安装
pip install django-grappelli
2.2 导入项目
settings.py
INSTALLED_APPS = [ 'accounts.apps.AccountsConfig', 'polls.apps.PollsConfig', 'bbs.apps.BbssConfig', 'grappelli', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
2.3 导入URL
项目 / urls.py
urlpatterns = [ path('grappelli', include('grappelli.urls')), path('admin/', admin.site.urls), path('', include('bbs.urls')), path('accounts/', include('accounts.urls')), ]
2.4 收集静态文件统一放到一个地方
settings.py 中添加
# 收集静态文件统一存放的根路径 STATIC_ROOT = os.path.join(BASE_DIR, 'static-files')
执行命令
python manage.py collectstatic
自动生成
再次启动服务会发现管理页面已经被修改
2.5 自定义标题
settings.py 中添加
# 后台自定义标题 GRAPPELLI_ADMIN_TITLE = 'Z-BBS ADMIN'
刷新页面
2.6 admin开启分页功能
应用 / admin.py
from django.contrib import admin # Register your models here. from .models import Topic, Comment class TopicAdmin(admin.ModelAdmin): list_display = ('topic_text', 'author', 'pub_date') search_fields = ('topic_text', 'author') list_editable = ('author',) list_per_page = 10 class CommentAdmin(admin.ModelAdmin): list_display = ( 'comment_text', 'author', 'pub_date', 'topic') search_fields = ('comment_text', 'author') list_editable = ('author',) list_per_page = 10
2.7 admin 开启过滤功能
应用 / admin.py
class TopicAdmin(admin.ModelAdmin): list_display = ('topic_text', 'author', 'pub_date') list_filter = ('topic_text', 'author', 'pub_date') search_fields = ('topic_text',) list_editable = ('author',) list_per_page = 10 class CommentAdmin(admin.ModelAdmin): list_display = ( 'comment_text', 'author', 'pub_date', 'topic') list_filter = ('comment_text', 'author', 'pub_date', 'topic') search_fields = ('comment_text',) list_editable = ('author',) list_per_page = 10
开启之后记得强制刷新页面(ctrl + shift + r),重新加载 js 和 css 代码
总结
以上所述是小编给大家介绍的Django 中自定义 Admin 样式与功能的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- DzintraErliha-Dreamscape(2024)[24Bit-96kHz]FLAC
- 群星.1999-上华世纪国语总冠军4CD【上华】【WAV+CUE】
- 叶丽仪.1992-仙鹤神针电视剧原声音乐专辑【星传真】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 《51首热门当红歌曲 十大顶级发烧女声 3CD》[WAV+CUE][1.6GB]
- 《赵传 深受摇滚迷青睐的台湾音乐人 约定》[WAV+CUE][320MB]
- 《庄心妍 实力唱将 发烧音乐精选集》[WAV+CUE][380MB]
- [音展纪念碟]2006年《TAA台湾第十六届国际HI-ENDHI-FI音响展》2cd[WAV]
- 中国音乐地图之听见西藏山歌牧歌酒歌2020[WAV分轨]
- 王宏伟2017-永远的红飘带[太平洋影音][WAV+CUE]
- 费翔.1997-NOW现在【第一中国】【WAV+CUE】
- 新格合唱团.1981-我唱你和2辑(滚石新格民歌系列)【新格】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 雨果唱片-《金唛系列-蔷薇依韵琼瑶》WAV
- 陈百强《凝望(2012华纳LPCD45限量版)[DMI]》[WAV整轨]