Django1.10 admin后台添加APP与ModelAdmin options

  • A+
所属分类:Django学习

所有的网站都会有前台和后台,前台用于访问,后面用于管理员管理网站(添加网站内容,修改网站内容),之前做的DEDE仿站教程 做的内容就是前台的内容,而后台的内容基本上没怎么涉及。

Django1.10 admin后台添加APP与ModelAdmin options

上图为Django默认的后台,很简单。

那么如何把我们建设好的APP的数据记录在后台呢?

操作流程

  • 导入APP中的Models
  1. from cms.models import *
  • 注册APP中的字段(User为字段)
  1. admin.site.register(User)

全部字段添加完成后,刷新页面

Django1.10 admin后台添加APP与ModelAdmin options

  • list_display,列表中显示更多内容
  1. class Linksadmin(admin.ModelAdmin):   # Linksadmin自定义名称
  2.     list_display = ('title', 'description', 'callback_url', 'date_publish', 'index')  # 需要列表中显示的内容

Django1.10 admin后台添加APP与ModelAdmin options

  • fields 只显示指定的字段(相反的有exclude,去除某字段)
  1. class Linksadmin(admin.ModelAdmin):
  2.     list_display = ('title', 'description', 'callback_url', 'date_publish', 'index') #在列表中显示的字段
  3.     fields =('title', 'description', 'callback_url',) # 只显示这三个字段
  4.     exclude = ('date_publish') # 不显示这个字段

Django1.10 admin后台添加APP与ModelAdmin options

 

  • fieldsets 显示部分信息,不重要或者高级设置默认隐藏
  1. class Linksadmin(admin.ModelAdmin):
  2.     list_display = ('title', 'description', 'callback_url', 'date_publish', 'index') #在列表中显示的字段
  3.     fieldsets = (
  4.         (None, {
  5.             'fields': ('title', 'description', 'callback_url') #默认展示的内容
  6.         }),
  7.         ('默认选项', {
  8.             'classes': ('collapse',),  # 隐藏定义,不可修改
  9.             'fields': ('index',)  #如果参数是一个,请在参数后加入,号,否则报错
  10.         }),
  11.     )

Django1.10 admin后台添加APP与ModelAdmin options

  • list_display_links 列表中内容,显示为链接,或都不为链接
  1. # 友情链接显示更多
  2. class Linksadmin(admin.ModelAdmin):
  3.     list_display = ('title', 'description', 'callback_url', 'date_publish', 'index') #在列表中显示的字段
  4.     list_display_links = ('title', 'description', 'callback_url', 'date_publish', 'index') #默认的情况下只有点击tit才可以进入内容编辑,使用后定义的字段都可以点击进行内容编辑
  5.     list_display_links = None #全部不可以点击
  • list_editable,对部分内容实现在列表中直接编辑
  1. class Linksadmin(admin.ModelAdmin):
  2.     list_display = ('title', 'description', 'callback_url', 'date_publish', 'index') #在列表中显示的字段
  3.     list_editable = ('index',) #排序内容进行,列表页编辑,index字段被定义为排序字段
  • list_filter,在列表页根据字段来筛选数据
  1. # 友情链接显示更多
  2. class Linksadmin(admin.ModelAdmin):
  3.     list_display = ('title', 'description', 'callback_url', 'date_publish', 'index') #在列表中显示的字段
  4.     list_filter = ('date_publish', 'callback_url')  # 根据时间,跟网址做筛选
  • list_per_page ,在列表页显示多少条内容
  1. # 友情链接显示更多
  2. class Linksadmin(admin.ModelAdmin):
  3.     list_display = ('title', 'description', 'callback_url', 'date_publish', 'index') #在列表中显示的字段
  4.     list_per_page = 1  # 每一页列表页只显示一条数据
  • search_fields,根据设定的字段在列表页进行搜索
  1. # 友情链接显示更多
  2. class Linksadmin(admin.ModelAdmin):
  3.     list_display = ('title', 'description', 'callback_url', 'date_publish', 'index')  # 在列表中显示的字段
  4.     search_fields = ['title']  # 根据tit字段搜索内容

Django1.10 admin后台添加APP与ModelAdmin options

补充说明:这里是目前来看我能用上的,更多的请查看:https://docs.djangoproject.com/en/1.10/ref/contrib/admin/

 

额外说明

在上面的导航栏上面,总是能看到Blog这个的文字,这个是APP的名称,那么如何修改这个名称了?

在项目下APP下的__init__.py文件中添加以下内容

  1. # encoding:utf-8
  2. from os import path
  3. from django.apps import AppConfig
  4. VERBOSE_APP_NAME = u'博客'
  5. def get_current_app_name(file):
  6.     return path.dirname(file).replace('\\', '/').split('/')[-1]
  7. class AppVerboseNameConfig(AppConfig):
  8.     name = get_current_app_name(__file__)
  9.     verbose_name = VERBOSE_APP_NAME
  10. default_app_config = get_current_app_name(__file__) + '.__init__.AppVerboseNameConfig'

如果你有更好的方法,请告诉我,谢谢。

 

 

李金龙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: