编写第一个Django app,第五部分——自定义管理员功能

自定义admin表单

这足以让我们惊讶好几分钟,所有的代码我们都不需要写。

当我们调用admin.site.register(Poll)时,Django只让你编辑这个对象并” 推测“怎么把它显示在管理页面上。

很多时候,你可能想要控制admin的样式和功能。你可以在你注册对象的时候 把选项告诉Django来实现。

让我们看一下在编辑表单中是怎样实现重新排序字段的。用下面的代码来替 换admin.site.register(Poll):

class PollAdmin(admin.ModelAdmin):
     fields = ['pub_date', 'question']

admin.site.register(Poll, PollAdmin)

你将遵循这个模式——创建一个admin模型对象,然后把它传递给 admin.site.register()的第二个参数——任何时候你需要修改admin的选项都是 修改一个对象。上面具体的改变是"Publication date"字段在"Question"字段的 前面:

只有两个字段并不会给人留下深刻的印象,但当admin表单包含有大量字段的 时候,选择一个直观的排序方式就是一个重要的细节了。

并且,你可能想要把这些大量的表单字段分割归类为字段集:

class PollAdmin(admin.ModelAdmin):
     fieldsets = [
       (None,        {'fields': ['question']}),
       ('Date information', {'fields': ['pub_date']}),
     ]

admin.site.register(Poll, PollAdmin)

字段集中每个tuple的第一个元素是字段集的标题。现在我们的表单看起来像 这样:

时间: 2024-10-01 16:24:46

编写第一个Django app,第五部分——自定义管理员功能的相关文章

编写第一个Django app,第一部分——创建项目

编写第一个Django app,第一部分--创建项目 让我们通过例子来学习. 通过这个指导教程,我们将一步步地教你创建一个简单的投票系统. 这个系统分为两部分: 1.一个公共的页面让人们投票和查看投票结果. 2.一个管理员页面让你添加,修改和删除投票. 我们假定你已经安装了Django.你可以运行Python编译器并输入import django来测试Django是否已经安装.如果命令运行成功,没有错误,说明Django 已经安装了. 新建项目 如果你是第一次使用Django,你必须确保一些初始

编写第一个Django app,第四部分——初控Django的管理员功能

启用管理员功能 Django的管理员功能默认是不启用的--这是一个可选项.想要为你的程序 启用管理员功能,需要做这三样事情: 1.在INSTALLED_APPS设置中添加"django.contrib.admin". 2.运行python manage.py syncdb.当你添加一个新的应用程序到 INSTALLED_APPS时,数据库的表需要手动更新. 3.编辑文件mysite/urls.py,取消注释"Uncomment the next two lines...&qu

编写第一个Django app,第二部分——创建模型和使用模型

创建模型 现在你的运行环境--"project"--已经建好了,现在准备让它开始工作了 . 你在Django中写的每一个应用程序都是由Python包组成,它们都在Python的 路径下,遵循一定的约定. Django自带有一个实用的工具,自动生成app的基本目录结构,因些,你可以 把更多的精力放在代码的编写上而不是创建目录上. Projects vs. apps(项目与应用程序) project和app之间有什么不同之处呢?一个app是实现某种功能的Web应用程 序--例如,一个网络博

编写第一个Django app,第三部分——玩转模型层的API

玩转模型层的API 现在,让我们进入Python shell中玩转Django为我们提供了的免费的API.使 用下面的命令运行Python shell: python manage.py shell 现在你已经进入到shell中了,研究一下这些数据库的API吧: >>> from mysite.polls.models import Poll, Choice # Import the model classes we just wrote. # 现在系统中还没有polls. >&g

Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

原文:Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App 安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneGap.ionic.AngularJS这些框架或库的关系,我个人理解是这样,PhoneGap是一个商业项目,用来实现HTML5式的跨平台开发,后来Adobe公司将其中的核心代码开源,就是Co

如何创建一个Django网站

本文参考官方文档演示如何创建一个简单的 django 网站,使用的 django 版本为1.7. 1. 创建项目 运行下面命令就可以创建一个 django 项目,项目名称叫 mysite : $ django-admin.py startproject mysite 创建后的项目目录如下: mysite ├── manage.py └── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 directory, 5 f

如何用 React Native 创建一个iOS APP?

诚然,React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等. React Native 使你能够使用基于 JavaScript 和 React 一致的开发体验在本地平台上构建世界一流的应用程序体验.React Native 把重点放在所有开发人员关心的平台的开发效率上--开发者只需学习一种语言就

我用opencv2.4编写了一个算法并生成了.DLL ,并在我电脑上用C#调用成功, 但在没有安装opencv2.4.9电脑上用C#使用, 请问怎把用到的op

问题描述 我用opencv2.4.9+VS2010平台上用C++编写了一个算法并生成了.DLL,并在我电脑上用C#调用成功,但是在没有安装opencv2.4.9的电脑上用C#使用,请问怎把用到的openCV库里的.DLL也一起封装到我要生成的算法代码的DLL中,让其他没有安装opencv2.4.9的电脑的C#调用?谢谢指教,不胜感激! 解决方案 解决方案二:大家有好的方法,可以发我邮箱3044757309@qq.com,谢谢大家了,不胜感激......解决方案三:1.不要嫌麻烦,把opencv的

c++-自己编写的一个windows服务不能启动

问题描述 自己编写的一个windows服务不能启动 我用C++编写了一个简单的windows服务,服务的任务是服务启动后向文件中循环写入文字,我的服务可以安装,但是启动时会显示本地计算机上的 xx服务启动后停止,我的电脑加入了公司的域,请问跟加域有关系吗? 解决方案 你是不是把代码逻辑写在OnStart里面了?你需要在OnStart中启动一个线程,并且用死循环保持住线程,将真正的逻辑写在里面. 解决方案二: 当然,否则OnStart执行完,没有保持住的线程,程序就停了.你可以google一些别人