文档章节

Django后台定制

大笨象会跳舞吧
 大笨象会跳舞吧
发布于 2018/07/11 19:53
字数 527
阅读 34
收藏 0

自定制Admin

如果只是在admin中简单的展示及管理模型,那么在admin.py模块中使用admin.site.register将模型注册一下就好了:

from django.contrib import admin
from myproject.myapp.models import Author

admin.site.register(Author)

ModelAdmin类是一个模型在admin页面里的展示方法,如果你对默认的admin页面满意,那么你完全不需要定义这个类,直接使用最原始的样子也行。通常,它们保存在app的admin.py文件里。下面是个简单的例子:

from django.contrib import admin
from myproject.myapp.models import Author

# 创建一个ModelAdmin的子类
class AuthorAdmin(admin.ModelAdmin):
    pass

# 注册的时候,将原模型和ModelAdmin耦合起来
admin.site.register(Author, AuthorAdmin)

注册装饰器

除了常用的admin.site.register(Author, AuthorAdmin)方式进行注册,还可以用装饰器的方式连接模型和ModelAdmin。如下所示:

from django.contrib import admin
from .models import Author

@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
    pass

这个装饰器可以接收一些模型类作为参数,以及一个可选的关键字参数site(如果你使用的不是默认的AdminSite),比如。

from django.contrib import admin
from .models import Author, Reader, Editor
from myproject.admin_site import custom_admin_site

@admin.register(Author, Reader, Editor, site=custom_admin_site)
class PersonAdmin(admin.ModelAdmin):
    pass

注册位置

当你在INSTALLED_APPS设置中添加了django.contrib.admin后,Django将自动在每个应用中搜索admin模块并导入它。也就是说,通常我们在每个app下都有一个admin.py文件,将当前app和admin有关的内容写到内部的admin.py文件中就可以了,Django会自动搜索并应用它们。

ModelAdmin的属性

ModelAdmin非常灵活,它有许多内置属性,帮助我们自定义admin的界面和功能。所有的属性都定义在ModelAdmin的子类中,如下方式:

  • ModelAdmin.date_hierarchy 根据你指定的日期相关的字段,为页面创建一个时间导航栏,可通过日期过滤对象。例如:
from django.contrib import admin
class AuthorAdmin(admin.ModelAdmin):
    date_hierarchy = 'pub_date'

© 著作权归作者所有

上一篇: Django后台定制
下一篇: Django视图层总结
大笨象会跳舞吧
粉丝 31
博文 121
码字总数 207700
作品 0
济南
私信 提问
简易博客开发(2)----models, admin

django提供了非常方便的数据模型,可以非常简易的设计时间结构,URL结构,输入框等等,django都已经有编写好的数据结构,对于我这种初级编程来说再好没有,否则我就要自己写数据约束,格式,...

terry_hding
2016/02/11
435
0
Django基础(5): Admin

陆续更新中: Django基础(1): 目录文件简介 Django基础(2): 创建应用 Django基础(3): 配置url Django基础(4): 建立Templates Admin是Django中自带的一个自动化数据管理界面,功能强大。被授权...

AryaHooper
2017/12/27
0
0
我们 Pikacode 公司的技术选型

“及早发布。频繁发布。听取客户的意见”(Eric S. Raymond, The Cathedral and the Bazaar)是我们Pikacode公司的主导方针。开发中的技术选型必须认真的遵循这个指导原则。 Python 快速且整洁...

oschina
2012/11/14
2.7K
20
Django-----分页

一、目的 因为往往数据库中的数据在前端页面展示出来一页肯定是不够的,而一个网页的容量就那么大,所以肯定要分页显示。 二、实施 其实仔细想想,如果数据量小的话,直接在后台的views处理函...

AltBoy
2017/06/26
0
0
Xavier-Lam/wechat-django

WeChat-Django WeChat-Django旨在为接入微信公众平台的django开发者提供便捷的微信功能封装及最基本的后台管理支持. 项目官方地址: https://github.com/Xavier-Lam/wechat-django 本拓展基于...

Xavier-Lam
02/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jni接口NewStringUTF崩溃

转载 原文 https://blog.csdn.net/churuxu/article/details/49999575 ndk开发中,将c/c++的UTF8编码的字符串转换成java字符串,使用了NewStringUTF接口。 当字符串中包含emoji字符时,在有些...

shzwork
昨天
0
0
北斗三号IGSO-2卫星发射成功!

6月25日,中国航天科技集团官方公众号宣布,北斗三号IGSO-2卫星发射成功! 航天科技集团表示,6月25日2点09分,我国在西昌卫星发射中心用长征三号乙运载火箭成功将北斗三号第2颗倾斜地球同步...

linuxCool
昨天
3
0
阿里java开发规约的Idea插件安装(英文)

Idea Plugin Prepare Project JDK: 1.7+ Gradle: 3.0+(Require JDK1.8+ for gradle) Build cd p3c-ideagradle clean buildPlugin Run plugin cd p3c-ideagradle runIde# run speci......

Airship
昨天
1
0
很多人转行做程序员选择web前端学习,前端简单在哪里?

不管你是工人阶层还是服务行业,是否想过转行IT,转行IT后肯定会选择一门编程语言进行深入学习,很多转行的人基础都不是太好,不是科班出身,甚至有的是专科乃至中专,前端的HTML和CSS相对其...

智云编程
昨天
2
0
一文读懂内网、公网和NAT

我们做弱电监控系统的时候,都避免不了要跟IP地址打交道,比如摄像头、NVR、服务器等这些设备安装好之后,就需要给它们配上IP,那这个IP地址你了解嘛?今天我们就一起来聊聊什么是内网、公网和...

老孟的Linux私房菜
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部