admin使用

Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它:

# Application definition

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"app01"
]

通常在创建django项目的时候就已经在配置就已经设置好了直接在urls.py文件里可以看到他的路由

from django.conf.urls import url
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls), ]

现在我们访问这个路由

会发现是英文的界面如果你想把他改成中文那么就要在settings.py中进行相应的设置(加入下面的代码)

然后你就会发现变成中文的界面了   然后就是登录的问题了

我们要在命令模式下创建超级管理员

创建管理员的命令如下,按提示输入用户名、邮箱、密码。

python manage.py createsuperuser

username: 用户名

Email 邮件:(谁编写都可以只要后缀.com就行了)

password: 密码

password:(again)确认密码

然后使用再次访问:  使用你创建的账号密码登录

登录成功后界面如下,但是并没有我们自己应用模型的入口,接下来进行第三步操作。

注册模型类

登录后台管理后,默认没有我们创建的应用中定义的模型类,需要在自己应用中的admin.py文件中注册,才可以在后台管理中看到,并进行增删改查操作。

打开app01/admin.py文件,编写如下代码:

from django.contrib import admin
from app01.models import *
# Register your models here. admin.site.register(Book)
admin.site.register(Author)

然后到浏览器中刷新页面,可以看到注册的模型类了

这种是默认的样式。当我们点击Books后,可以看到Books表中的相关内容:

有没有感觉这个内容很单调,没有显示我们需要的数据呢?这个时候就需要自定制admin了。

自定制的方式是通过类来实现的,比如下面代码:

class BookAdmin(admin.ModelAdmin):
list_display = ("id", "title", "price")

需要注意的是定义管理类需要继承自admin.ModelAdmin类,而在上面代码中设置的是显示表中的哪些字段。

好了,接下来重新运行项目,看看效果如何:

WTF,好像并没有什么卵用。不要慌张,没有效果的原因是因为这个管理类和我们的表之前没有产生关联,所以还需要完成一步,就是在注册时加入第二个参数也就是这个管理类。

admin.site.register(Book, BookAdmin)

下面是修改后重写访问的效果:

OK!舒服了!当然了,如果不想写注册的代码更不想写它的第二个参数,或者你可以使用逼格更高的方法:装饰器。

from django.contrib import admin
from app01.models import *
# Register your models here. @admin.register(Book)
class BookAdmin(admin.ModelAdmin):
list_display = ("id", "title", "price") # admin.site.register(Book, BookAdmin) # 注意,如果使用装饰器的方式,这个注册代码需要注释。
admin.site.register(Author)

运行之后,会发现,效果还不错:

管理类中的常用设置

接下来,我们在上面完成内容的基础上继续看看其他的常用设置。

1.设置展示页面中内容可修改:

    list_editable = ("price",)

这里注意,如果是一个字段的话,必须在后面加逗号。

下面是运行效果:

2. 关联字段筛选设置

好了,展示页面中的内容大致修改之后,我们点击“1”,进入到详细记录的修改。

在这个详情页中,我们可以选择书籍对应的作者,不过,有时作者可能很多,如果去找的话是非常麻烦的,所以,我们可以做一个简单搜索框。

    filter_horizontal = ("authors",)

下面是运行的效果:

3.设置每页显示多少条数据

在当数据过多,Admin会自动帮我们分页,默认是20条记录,如果觉得不合适,我们可以自己指定。

    list_per_page = 2

下面是运行效果:

4.在展示页加入搜索

前面在修改和增加表间关系数据的时候,我们加入了搜索,接下来,我们在展示页也加入搜索的相关内容。

    search_fields = ("id", "name", "publisher__name")

在设置搜索条件的时候,也可以加入双下划线。下面是运行的效果:

5.加入过滤器

刚刚我们往展示页中加入了搜索框,虽然我们设置的搜索框的查询的字段及其顺序,但有时候,是及其不准确的,如果想要精准的查询,就需要用到过滤器了。

    list_filter = ("title", "publisher__name") 

上面是设置过滤器的代码,我们来看看运行的效果:

增加过滤器之后,当点击过滤器中内容就会查找到对应信息了。

6. 展示页自定义字段名

要修改展示页的字段名,需要在models中定义表字段的时候加入别名,也就是设置verbose_name:

class Book(models.Model):
title = models.CharField(max_length=100, verbose_name="图书名")
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
# publication_date = models.DateField()
price = models.DecimalField(max_digits=5, decimal_places=2, default=10, verbose_name="价格")

下面是展示效果:

7. 调整站点信息

在app01/admin.py中进行设置:

admin.site.site_header = '我是头'
admin.site.site_title = '我是标题'
admin.site.index_title = '欢迎使用图书管理系统'

下面是运行效果:

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. JS 逻辑

    JS 逻辑 Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false). Boolean 对象 您可以将 Boolean 对象理解为一个产生逻辑值的对象包装器. Boolean ...

  2. 微信小程序获取input输入框内容

    1.wxml <input class="weui-input" type='number' bindinput="emailInput"/>   ...

  3. 服务器返回的数据将Unicode码转成汉字

    当我们请求接口的时候,服务器会返回一些数据,当我们打印的时候就会发现,打印出来的是unicode码,不是汉字. 这时候需要我们自己手动处理一下,让打印的时候输出汉字的格式. 方法如下: 新增一个分类, ...

  4. XMind 是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生

    XMind 是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生 https://www.xmind.cn/

  5. iperf 一个测试网络吞吐的工具

    在分布式文件系统开发和测试过程中,我们经常需要测试真实的网络带宽,来进行估测分布式系统的传输性能,所以我们要对现有的网络进行测试:Iperf 是一个网络性能测试工具.IPerf可以测试最大的TCP和U ...

  6. 006.MongoDB副本集

    一 MongoDB 复制(副本集) 1.1 复制概述 MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的 ...

  7. leetcode 双周赛9 进击的骑士

    一个坐标可以从 -infinity 延伸到 +infinity 的 无限大的 棋盘上,你的 骑士 驻扎在坐标为 [0, 0] 的方格里. 骑士的走法和中国象棋中的马相似,走 “日” 字:即先向左(或右 ...

  8. Java Web 学习(8) —— Spring MVC 之文件上传与下载

    Spring MVC 之文件上传与下载 上传文件 表单: <form action="upload" enctype="multipart/form-data&qu ...

  9. verilog问题二三

    assign语句叫连续赋值语句?为什么要叫连续,是由于等式右边是顺序执行的还是因为在执行赋值的过程中,赋值的先后顺序(实际上或者概念上)是有顺序的? 同步(复位)与异步(复位)的具体内涵:异步信号定义 ...

  10. 设计模式-Strategy Strategy将算法封装到类中,通过组合的方式 将具体算法的实现在组合对象中实现

    以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //strategy.h #pragma once class Strategy { public: Strategy(); ...