Admin注册

内容发布的部分由网站的管理员负责查看、添加、修改、删除数据,开发这些重复的功能是一件单调乏味、缺乏创造力的工作,为此,Django能够根据定义的模型类自动地生成管理模块。

1)准备工作:创建管理员的用户名和密码。

python manage.py createsuperuser

按提示填写用户名、邮箱、密码。

2)使用:在应用的admin.py中注册模型类

例:打开booktest/admin.py文件,注册地区模型。

from django.contrib import admin

from models import *

admin.site.register(AreaInfo)

3)输入如下网址:

http://127.0.0.1:8000/admin/进行登录

登录成功后,可以进行增加、修改、删除、查询的管理。

控制管理页展示

类ModelAdmin可以控制模型在Admin界面中的展示方式,主要包括在列表页的展示方式、1,添加修改页的展示方式。

1)在booktest/admin.py中,注册模型类前定义管理类AreaAdmin。

class AreaAdmin(admin.ModelAdmin):

pass

管理类有两种使用方式:,

注册参数

装饰器

注册参数:打开booktest/admin.py文件,注册模型类代码如下:

admin.site.register(AreaInfo,AreaAdmin)

装饰器:打开booktest/admin.py文件,在管理类上注册模型类,代码如下:

@admin.register(AreaInfo)  #在django1.7之后新增

class AreaAdmin(admin.ModelAdmin):

pass 

2,admin页面汉化

admin页面都是以英文展示的,若要转化为汉语,在setting中设置

  1. LANGUAGE_CODE = 'zh-hans'
  2. TIME_ZONE = 'Asia/Shanghai'

不同的django版本有不同的设置方式,出问题可参考官网

3,列表页选项

每页中显示多少条数据,默认为每页显示100条数据,属性如下:

list_per_page=100

1)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

list_per_page = 10

4,"操作选项"的位置

顶部显示的属性,设置为True在顶部显示,设置为False不在顶部显示,默认为True。

actions_on_top=True

底部显示的属性,设置为True在底部显示,设置为False不在底部显示,默认为False。

actions_on_bottom=False

1)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

actions_on_top = True

actions_on_bottom = Truehi

5,按时间导航栏

date_hierarchy设置为在models中的datafield或者datatimefield字段名,更改列表按照时间段下来的导航,如果时间都在一个月内,按照天级别数据

              date_hierarchy = 'pub_date'

5,列表中的列

属性如下:

list_display=[模型字段1,模型字段2,...]

1)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

list_display = ['id','atitle']

点击列头可以进行升序或降序排列。

#ordering设置默认排序字段,负号表示降序排序

ordering = ('-publish_time',)

#list_editable 设置默认可编辑字段

list_editable = ['machine_room_id', 'temperature']

#fk_fields 设置显示外键字段

fk_fields = ('machine_room_id',)

6,右侧栏过滤器

属性如下,只能接收字段,会将对应字段的值列出来,用于快速过滤。一般用于有重复值的字段。

list_filter=[]

1)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

list_filter=['atitle']

7,搜索框

属性如下,用于对指定字段的值进行搜索,支持模糊查询。列表类型,表示在这些字段上进行搜索。

search_fields=[]

1)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

search_fields=['atitle']

8,中文标题

1)打开booktest/models.py文件,修改模型类,为属性指定verbose_name参数,即第一个参数。

class AreaInfo(models.Model):

atitle=models.CharField(verbose_name='标题',max_length=30)#名称

...

  

9,编辑页选项

显示字段顺序(通过以下的射值可以改变编辑页顺序显示的顺序)

属性如下:

fields=()

2)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

fields=('aParent','atitle')

每一个字段使用一行,如果想一行显示多个字段,则将哪些字段打包到一个元组中

也可以使用exclude来排除某一个字段

属性如下:

Exclude=()

2)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

exclude=(‘id’)

注意:fields和exclude是能二选一使用

可以使用fieldset来设置,可以分成不同的栏目,而且比较简洁,属性如下:

fieldset=(

('组1标题',{'fields':('字段1','字段2')}),

('组2标题',{'fields':('字段3','字段4')}),

)

标题为None,则页面没有标题

1)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

# fields=('aParent','atitle')

fieldsets = (

('基本', {'fields': ['atitle']}),

('高级', {'fields': ['aParent']})

)

说明:fields与fieldsets两者选一使用。

10,关联对象

在一对多的关系中,可以在一端的编辑页面中编辑多端的对象,嵌入多端对象的方式包括表格、块两种。 类型InlineModelAdmin:表示在模型的编辑页面嵌入关联模型的编辑。子类TabularInline:以表格的形式嵌入。

子类StackedInline:以块的形式嵌入。

1)打开booktest/admin.py文件,创建AreaStackedInline类。

class AreaStackedInline(admin.StackedInline):

model = AreaInfo#关联子对象

extra = 2#额外编辑2个子对象

2)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

inlines = [AreaStackedInline]

可以用表格的形式嵌入。

1)打开booktest/admin.py文件,创建AreaTabularInline类。

class AreaTabularInline(admin.TabularInline):

model = AreaInfo#关联子对象

extra = 2#额外编辑2个子对象

2)打开booktest/admin.py文件,修改AreaAdmin类如下:

class AreaAdmin(admin.ModelAdmin):

...

inlines = [AreaTabularInline]

django 之admin使用的更多相关文章

  1. [django]Django站点admin支持中文显示和输入设置

    正文: Django站点admin支持中文输入设置,操作如下: 1 需要确定的你的数据库的client客户端和服务端的编码设置为utf-8,如果不是,请将其设置成utf-8编码,我采用mysql,详情 ...

  2. Django之admin界面恢复及添加数据模型

    引自:http://fl0wjacky.github.io/jekyll_demo/2014/07/14/Django-admin.html Django之admin界面恢复及添加数据模型 Djang ...

  3. grappelli美化django的admin页面

    开始用admin时候,觉得它的页面实在...宁愿自己写modules,多费点时间 grappelli可以把admin变得非常美观,配置起来也很简单 第一步,先下载grappelli,搜索一下,wind ...

  4. django: db - admin

    本讲演示简单使用 Django Admin 功能. 一,修改 settings.py,添加 admin 应用: INSTALLED_APPS = ( 'django.contrib.auth', 'd ...

  5. django之admin流程

    admin 类复习: class Base(object): def __init__(self,val): self.val = val def func(self): self.test() pr ...

  6. Django的admin.py注册流程

    通常创建一个Django项目的时候,在Django的配置文件settings.py中,都会有下面的这段配置: INSTALLED_APPS = [ 'django.contrib.admin', 'd ...

  7. 【django之admin,单例模式】

    一.admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTAL ...

  8. Django之admin的使用和源码剖析

    admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...

  9. Django 之 admin管理工具

    -------------------------------------------------------------------------妄尝恶果,苦果自来. admin组件使用 Django ...

  10. Django的Admin站点管理

    一.概述 内容发布:负责添加.修改.删除内容 公告访问 二.配置Admin应用 在settings.py文件中的INSTALLED_APPS中添加'django.contrib.admin',默认是添 ...

随机推荐

  1. "remote:error:refusing to update checked out branch:refs/heads/master"的解决办法(转)

    https://blog.csdn.net/jacolin/article/details/44014775 在使用Git Push代码到数据仓库时,提示如下错误: [remote rejected] ...

  2. Qt中的主窗口之菜单栏

    1.Qt中的主窗口 主窗口为建立应用程序用户界面提供了一个框架 Qt开发平台中直接支持主窗口的概念 QMainWindow是Qt中主窗口的基类 QMainWindow继承于QWidget是一种容器类型 ...

  3. Azure IOT Edge

    微软Build 2017大会,纳德拉表示,在计算力的飞速发展中,微软要做的就是将计算的能力赋权给普通用户,让技术为更多用户所用,让计算机视觉.文本理解等技术变得更加普惠(inclusive),同时构建 ...

  4. 弄清SDI显示工程中的每一个信号,每一个逻辑

    弄清SDI显示工程中的每一个信号,每一个逻辑 1. FIFO外部逻辑控制 FIFO的读和写在不同的时钟域,所以读和写的控制逻辑应当分开写在不同的两个always块语句中. 2.播出端复位信号的产生 : ...

  5. qt编程

    http://www.zhihu.com/question/20054048 http://www.cnblogs.com/luoshupeng/archive/2011/05/01/2033743. ...

  6. 解析H5本地储存Web Storage

    一.本地存储由来的背景 由于HTML4时代Cookie的大小.格式.存储数据格式等限制,网站应用如果想在浏览器端存储用户的部分信息,那么只能借助于Cookie.但是Cookie的这些限制,也就导致了C ...

  7. ALGO-27_蓝桥杯_算法训练_FBI树(树,递归)

    问题描述 我们可以把由“”和“”组成的字符串分为三类:全“”串称为B串,全“”串称为I串,既含“”又含“”的串则称为F串. FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种.由一个长 ...

  8. Hadoop概念学习系列之关于hadoop-2.2.0和hadoop2.6.0的winutils.exe、hadoop.dll版本混用(易出错)(四十三)

    问题详情是 2016-12-10 23:24:13,317 INFO [org.apache.hadoop.metrics.jvm.JvmMetrics] - Initializing JVM Met ...

  9. .NET使用Task动态创建多任务多线程并行程序计算Redis集群keys计算

    Task是一个很好用的多任务处理类,并且通过Task可以对任务进行很好的控制. 下面将通过代码实现Redis集群在使用IServer.keys时通过多任务对多个服务器示例进行并行计算,并对返回key做 ...

  10. [ZZ]知名互联网公司Python的16道经典面试题及答案

    知名互联网公司Python的16道经典面试题及答案 https://mp.weixin.qq.com/s/To0kYQk6ivYL1Lr8aGlEUw 知名互联网公司Python的16道经典面试题及答 ...