1、将添加blog的后台基本操作
在blog文件夹下新建一个admin.py文件加入一下代码:
-
from django.contrib import admin
-
from djcms.apps.blog.models import Post, Category, Tag
-
-
admin.site.register(Post)
-
admin.site.register(Category)
-
admin.site.register(Tag)
重启服务,再到浏览器上登录到后台,是不是增加了对blog的基本操作,不仅比较完善、界面整洁优雅,而且很多都可以自定义,是不是很酷!后续再慢慢研究。
2、汉化表单、完善表单
目前位置,后台的表单前面的标签label基本上都是默认的字段名字,各种表单也是初始的状态,下面我们简单做些修改。修改后的模型代码如下:
- # coding:utf8
-
from django.db import models
-
-
class Category(models.Model):
-
"""
- 文章分类
-
"""
-
title = models.CharField('名称', max_length=100) # 分类名称
-
alias = models.CharField('别名', max_length=100) # 分类别名(用于 url 优化)
-
sort = models.SmallIntegerField('排序') # 排序
-
-
class Meta:
-
verbose_name = '分类'
-
verbose_name_plural = '分类'
-
ordering = ['sort']
-
-
def __unicode__(self):
-
return self.title
-
-
class Tag(models.Model):
-
"""
- 文章标签
-
"""
-
tagname = models.CharField('标签名', max_length=60) # 标签名
-
post_ids = models.TextField(editable=False) # 对应的文章 id 集合的序列
-
-
class Meta:
-
verbose_name = '标签'
-
verbose_name_plural = '标签'
-
-
def __unicode__(self):
-
return self.tagname
-
-
class Post(models.Model):
-
"""
- 博客文章
-
"""
-
# 文章发布状态
-
CONTENT_STATUS_PUBLISHED = 1
-
# 文章草稿箱状态
-
CONTENT_STATUS_DRAFT = 2
-
# 文章状态选项
-
CONTENT_STATUS_CHOICES = (
-
(CONTENT_STATUS_PUBLISHED, '发布'),
-
(CONTENT_STATUS_DRAFT, '草稿箱'),
-
)
-
-
title = models.CharField('标题', max_length=100) # 标题
-
content = models.TextField('文章内容') # 内容
-
excerpt = models.TextField('摘要') # 摘要
-
publish_date = models.DateTimeField('发表时间') # 发表时间
-
status = models.IntegerField('状态',
-
choices=CONTENT_STATUS_CHOICES,
-
default=CONTENT_STATUS_PUBLISHED) # 状态:1为正式发布,2为草稿箱
-
comments_count = models.IntegerField(default=0, editable=False) # 评论总数
-
view_count = models.IntegerField(default=0, editable=False) # 浏览总数
-
-
alias = models.CharField('别名', max_length=100, blank=True) # 别名(用于 url 优化)
-
keywords = models.CharField('关键字', max_length=500, blank=True) # 关键字
-
description = models.TextField('描述', blank=True) # 描述
-
-
user = models.ForeignKey("auth.User",
-
verbose_name = '作者',
-
related_name="%(class)ss") # 作者
-
categories = models.ManyToManyField(Category, blank=True,
-
verbose_name = '分类',
-
related_name="posts") # 分类
-
-
class Meta:
-
verbose_name = '文章'
-
verbose_name_plural = '文章'
-
ordering = ['publish_date']
-
-
def __unicode__(self):
-
return self.title
其中将文章状态选项CONTENT_STATUS_CHOICES 写在Post类中更加合理,而Meta中的verbose_name表示单数形式的显示,verbose_name_plural表示复数形式的显示,因为中文的单数和复数一般不作区别,如果是英文一般默认会的复数是加上了s
进一步完善文章的列表显示和表单,在blog下面的admin.py文件中加入PostAdmin类:
-
class PostAdmin(admin.ModelAdmin):
-
list_display = ('title', 'publish_date', 'user', 'status') # 列表显示的字段
-
search_fields = ('title',) # 列表包含根据指定字段搜索
-
list_filter = ('publish_date',) # 右侧过滤选项
-
-
# 分组表单
-
fieldsets = (
-
('基本信息', {'fields': ('title', 'content', 'excerpt', 'publish_date','status', 'user', 'categories')}),
-
('Meta Data', {'fields': ('alias', 'keywords', 'description')}),
-
)
代码的作用都有注释,就不详述了,更改后的文章列表页为下面效果:
添加和编辑文章的表单是不是也变得和你想要的比较接近了!在此就不截图了!
注意,有3种类型的域不能按如上方式添加自定义名称:ManyToManyField,OneToOneField,ForeignKey。而应该显示指定:
class Film(models.Model):
title = models.CharField('片名', max_length=100)
actors = models.ManyToManyField(Actor,verbose_name='演员')
pub_date = models.DateField('发行日期')
publisher = models.ForeignKey(Publisher,verbose_name='发行商')
如果想修改通过admin自动生成的后台管理标题 请用国际化处理, 如果改变布局可以重写admin的页面
转自 http://www.yakecan.com/archives/998
分享到:
相关推荐
今天小编就为大家分享一篇Django admin model 汉化显示文字的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
django admin 美化,采用layui 作为基本框架,改写大部分页面
django-model-report, Django 报告与highcharts集成 Django 模型报告django-model-report是与highcharts集成的报告的Django 应用程序和库。 现在,由 @jelenak 维护。演示http://django-model-report.hero
django-admin-bootstrap-master.zip
多级菜单在很多上面都有应用,这篇文章主要介绍了Django Admin实现三级联动(省市区),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
今天小编就为大家分享一篇自定义django admin model表单提交的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
django-admin-customizer Django admin 自定义界面特征同一模型的多个管理实例定制: 列表显示列表过滤器raw_id_fields 搜索字段去做动作配置器基础管理类支持要求Django 1.3、1.4、1.5、1.6。 不支持 Django 1.2 或...
django-admin-env-notice 在Django Admin中可视化辨别environments
今天小编就为大家分享一篇Django admin.py 在修改/添加表单界面显示额外字段的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
django-admin-dialog 显示一个对话框弹出窗口,其中包含针对您所指定的管理字段的帮助文本。 要求 django-redactoreditor 安装 通过pip安装应用程序: $ pip install django-admin-dialog 将django_admin_dialog...
主要介绍了在django admin详情表单显示中添加自定义控件的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了Django model重写save方法及update踩坑详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
django-admin-tools django-admin-tools是默认django管理界面的扩展/工具的集合,它包括: 功能齐全且可自定义的仪表板; 可自定义的菜单栏; 简化管理员主题设置的工具。 该代码托管在。 Django-admin-tools有大量...
django-foldable-admin django-foldable-admin允许折叠/扩展应用程序部分。 :skull_and_crossbones: 此项目不再受支持 :skull_and_crossbones: 要求: Django> = 1.8(自Django> = 2起未在新版本上进行测试) ...
在Django Admin中每个模型的Admin类(继承至admin.ModelAdmin), 我们可以通过actions增加支持的动作, 值为当前类存在的方法名, 例如: ....... @admin.register(Issue) class IssueAdmin(admin.ModelAdmin): ...... ...
Django管理员公告 在Django管理界面上方显示浮动通知横幅。 在指示当前部署环境时特别有用。安装通过Python软件包索引(PyPI)安装django-admin-notice: pip install django-admin-notice 将admin_notice添加到...
Django Mptt管理员 Django-mptt-admin为提供了一个不错的Django Admin界面。 该资源可从。 可在上找到文档。