https://www.cnblogs.com/yuanchenqi/articles/6083427.htm

https://www.cnblogs.com/haiyan123/p/8034430.html

Django admin :关于数据库的一个后台管理工具

  admin是django强大功能之一,它能共从数据库中读取数据,呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,如果你不需要复杂的功能,

它已经够用,但是有时候,一些特殊的功能还需要定制,比如搜索功能,下面这一系列文章就逐步深入介绍如何定制适合自己的admin应用。

如果你觉得英文界面不好用,可以在setting.py 文件中修改以下选项

LANGUAGE_CODE = 'en-us'  #LANGUAGE_CODE = 'zh-hans'

一  认识ModelAdmin

管理界面的定制类,如需扩展特定的model界面需从该类继承。

二 注册medel类到admin的两种方式:

<1>   使用register的方法

admin.site.register(Book,MyAdmin)

  <2>   使用register的装饰器

@admin.register(Book)

三 掌握一些常用的设置技巧

  • list_display:     指定要显示的字段
  • search_fields:  指定搜索的字段
  • list_filter:        指定列表过滤器
  • ordering:       指定排序字段
from django.contrib import admin
from app01.models import *
# Register your models here.# @admin.register(Book)#----->单给某个表加一个定制
class MyAdmin(admin.ModelAdmin):list_display = ("title","price","publisher")search_fields = ("title","publisher")list_filter = ("publisher",)ordering = ("price",)fieldsets =[(None,               {'fields': ['title']}),('price information', {'fields': ['price',"publisher"], 'classes': ['collapse']}),]admin.site.register(Book,MyAdmin)
admin.site.register(Publish)
admin.site.register(Author)

创建超级管理员

python manage.py createsuperuser

登陆admin

from django.db import models# Create your models here.class Book(models.Model):name = models.CharField(max_length=32)price = models.IntegerField()pub_date = models.DateField()publish = models.ForeignKey("Publish",on_delete=models.CASCADE)authors = models.ManyToManyField("Author")def __str__(self):return self.nameclass Publish(models.Model):name = models.CharField(max_length=32)city = models.CharField(max_length=32)def __str__(self):return self.nameclass Author(models.Model):name = models.CharField(max_length=32)age = models.IntegerField()def __str__(self):return self.name# class Book_Author(models.Model):
#     book = models.ForeignKey("Book", on_delete=models.CASCADE)
#     author = models.ForeignKey("Author", on_delete=models.CASCADE)

models

admin.py

from django.contrib import admin
from app import models
# Register your models here.

admin.site.register(models.Book)
admin.site.register(models.Publish)
admin.site.register(models.Author)

自定义admin样式

admin.py

from django.contrib import admin
from app import models
# Register your models here.class BookAdmin(admin.ModelAdmin):list_display = ('name','price','pub_date')admin.site.register(models.Book,BookAdmin)
admin.site.register(models.Publish)
admin.site.register(models.Author)

注意:list_display不可以加多对多的关系

此时price,pub_date不可以直接在页面上edit,需要点击书名进入修改页面,若想直接修改,需要再加一个字段

class BookAdmin(admin.ModelAdmin):list_display = ('name','price','pub_date')list_editable = ('price','pub_date')

增加字段选择author, filter_horizontal

class BookAdmin(admin.ModelAdmin):list_display = ('name','price','pub_date')list_editable = ('price','pub_date')filter_horizontal = ('authors',)

list_per_page

class BookAdmin(admin.ModelAdmin):list_display = ('name','price','pub_date')list_editable = ('price','pub_date')filter_horizontal = ('authors',)list_per_page = 2

search_fields

class BookAdmin(admin.ModelAdmin):list_display = ('name','price','pub_date')list_editable = ('price','pub_date')filter_horizontal = ('authors',)list_per_page = 2search_fields = ('name','id','publish__name')

list_filter

class BookAdmin(admin.ModelAdmin):list_display = ('name','price','pub_date')list_editable = ('price','pub_date')filter_horizontal = ('authors',)list_per_page = 2search_fields = ('name','id','publish__name')list_filter = ('pub_date','publish')

verbose_name

class Book(models.Model):name = models.CharField(max_length=32,verbose_name="姓名")price = models.IntegerField("价格")pub_date = models.DateField()publish = models.ForeignKey("Publish",on_delete=models.CASCADE)authors = models.ManyToManyField("Author")

ording

class BookAdmin(admin.ModelAdmin):list_display = ('name','price','pub_date')list_editable = ('price','pub_date')filter_horizontal = ('authors',)# list_per_page = 2search_fields = ('name','id','publish__name')list_filter = ('pub_date','publish')ordering = ('-price',) # 加"-"倒序

转载于:https://www.cnblogs.com/xiangtingshen/p/10627597.html

Django(九)admin相关知识相关推荐

  1. Django restfulframework 开发相关知识 整理

    目录 目录 前言 前后端分离 实现前后端分离的方法 前后端分离带来的优点 RESTful十大规范 协议规范 域名规范 版本表示规范 url使用名词 http请求动词 过滤条件 状态码 错误信息 请求方 ...

  2. 一篇文章浅析Django Form组件相关知识

    击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 灭烛怜光满,披衣觉露滋. 前言 在上 ...

  3. 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识...

    ---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...

  4. Redis 九种数据结构及其底层实现 持久化 缓存机制 过期键与内存淘汰 集群等相关知识

    参考内容: B站尚硅谷Redis视频教程 <Redis 6 入门到精通 超详细 教程> B张黑马程序员Redis视频教程 <黑马程序员Redis入门到实战教程,全面透析redis底层 ...

  5. Docker容器原理及相关知识

    Docker容器原理及相关知识 一.Docker容器介绍 1.容器概念 2.Docker介绍 3.Dcker的特点 二.Docker的体系架构 三.相关术语介绍 1.Docker 客户端 2.Dock ...

  6. 1月24日学习内容整理:Django的admin组件源码分析及流程

    一.单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用 ...

  7. django 用户管理相关的表

    Django 用户管理相关的表: create table django_content_type (/*内容类型表*/id int(11) not null auto_increment,app_l ...

  8. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  9. 吴恩达《机器学习》学习笔记九——神经网络相关(1)

    吴恩达<机器学习>学习笔记九--神经网络相关(1) 一. 非线性假设的问题 二. 神经网络相关知识 1.神经网络的大致历史 2.神经网络的表示 3.前向传播:向量化表示 三. 例子与直觉理 ...

最新文章

  1. Swift JSON转模型Xcode插件
  2. java 令牌解析_Java编程guava RateLimiter实例解析
  3. 驰骋工作流程底层的API开发接口-重要的
  4. ie8.0 不能用document.all兼容IE7模式
  5. GridView类容器中的DropDownList联动
  6. 图灵成立七周年——经典回顾
  7. 继续!面试继续!Netty dubbo的通信方式
  8. wpf label字体为斜体_2020年趋势:20款流行字体大预测
  9. markdown 目录缩进_页面排版很难吗?一起来学Markdown吧!01基础语法
  10. lua mysql发包_如何发包
  11. 拓端tecdat|R语言使用ARIMAX预测失业率经济时间序列数据
  12. Libevent源码解析
  13. java虚拟机之内存模型
  14. 小爱同学服务器响应,小爱同学反应慢
  15. 哈工大计算机系统大作业 程序人生-Hello’s P2P
  16. JavaWeb之Servlet-注册页面
  17. FreeRTOS任务切换过程深层解析
  18. 【Android】音乐播放器APP的设计与实现
  19. 算法产品化---在ArmNN上运行ONNX
  20. JAVA异常中的坑--trytry-catch-finally的执行顺序

热门文章

  1. 如何优雅的关闭 Spark Streaming 程序(2种思路)
  2. 【CCF】201709-1打酱油
  3. DFF之--(一)神经网络入门之线性回归
  4. 漫步最优化二——基本优化问题
  5. [深度学习-数据集] cifar-10数据集介绍
  6. leetcode - 1021. 删除最外层的括号
  7. 去哪儿-20-detail-animation
  8. hp服务器增加raid卡,惠普ProLiant服务器Raid卡配置过程详解
  9. RichEdit 各个版本介绍
  10. win10批处理改计算机名和ip地址,win10系统修改计算机IP地址的操作方法