永发信息网

django界面如何获取系

答案:1  悬赏:80  手机版
解决时间 2021-01-13 04:30
  • 提问者网友:wodetian
  • 2021-01-12 18:12
django界面如何获取系
最佳答案
  • 五星知识达人网友:迟山
  • 2021-01-12 18:49
Django管理站点的最后几节介绍了定制部分管理界面的一些简单方法。进入本章之前,请先复习一下那部分资料;其中涵盖了如何定制管理接口的 change list和 edit forms ,以及如何将管理界面冠以与站点一致的风格。
Django管理站点还讨论了何时以及如何使用管理界面,由于那些资料对本章剩下内容是个好的起点,在此我们将重温一遍:
显而易见,对数据编辑工作来说,该管理界面极为有用(想象一下)。如果用于完成某种数据的录入工作,该管理界面实在是无人能及。我们猜想本书绝大多数读者都有成堆数据录入任务。
Django管理接口特别关注那些没有技术背景的用户来使用数据录入;这也是该功能的开发目的。在Django最初开发地报社,开发一个典型的在线市政供水质量报告系统,需求如下:
§ 负责该题材的记者与某个开发人员会面,提交现有数据。
§ 开发人员围绕该数据设计一个模型,并为该记者开发出管理界面。
§ 在记者将数据录入 Django的同时,程序员就可以专注于开发公众访问界面了(最有趣的部分!)。
换句话说,Django管理接口之所以存在的首要目的是为了方便内容编辑人员和程序员同时开展工作。
当然,除了显而易见的数据录入任务之外,我们发现管理界面在其他一些情况下有是很有用处的。
§ 查验数据模型:定义好一个新的数据模型以后,我们要做的第一件事情就是在管理界面中将它运行起来,然后输入一些假想数据。通常在发现数据建模出错后,用图形化的模型界面可以快速找到症结所在。
§ 管理获得的数据:很少有真实数据输入会和像http://chicagocrime.org这样的站点相关联,因为多数数据来自自动生成的源头。然而,当所获取的数据出错而导致麻烦时,能够便捷地找到并修改出错数据将会有助于问题解决。
无需或者仅需略为定制之后, Django管理界面就能处理绝大部分常见情形。然而,正是因为在设计上极力折衷, Django管理界面能够很好地处理这种常见情形也就意味着它无法同样处理其它一些编辑模型。
稍后,我们将讨论哪些不是Django管理界面设计用来处置的情形,但首先让我们暂时岔开话题,讨论一下它的设计理念。
管理之道
在核心部分,Django管理界面只被设计用于一种行为:
受信任用户编辑结构化的内容。
是的,这非常的简单,但这种简单是建立在一整堆假定之上的。Django管理界面的全部设计理念均直接遵循这些假定,因此让我们深入理解一下这些后续小节中所出现术语的含义。
受信任用户
管理界面被设计成由你这样的开发人员所信任的人使用。这里所指的并非只是通过身份验证的人;而是说 Django假定可以相信内容编辑者只会做对的事情。
反过来说,这也就意味着如果你信任用户,他们无需征得许可就能编辑内容,也没有人需要对他们的编辑行为进行许可。另一层含义是,尽管认证系统功能强大,但到本书写作时为止,它并不支持对象级基础的访问限制。如果你允许某人对自己的新闻报道进行编辑,你必须能够确信该用户不会未经许可对其他人的报道进行编辑。
编辑
Django 管理界面的首要目的是让用户编辑数据。乍一看这是显而易见的,但仔细一想却又变得有点难以捉摸和不同凡响。
举例来说,虽然管理界面非常便于查验数据(如刚才所讨论的那样),但这并不是它的设计初衷。比如我们在Django会话、用户和注册中谈到的,它缺少视图许可。Django假定如果某人在管理界面中可以查看内容,那么也可以进行编辑。
还有件更重要的事情要注意,那就是对于远程调用工作流的缺乏。如果某个特定任务由一系列步骤组成,没有任何机制确保这些步骤能够以某个特定顺序完成。 Django管理界面专注于编辑,而不关心修改周边的活动。对工作流的这种回避也源自于信任原则:管理界面的设计理念是工作流乃人为事物,无需在代码中实现。
最后,要注意的是管理界面中缺少聚合。也就是说,不支持显示总计、平均值之类的东西。再次重申,管理界面只用于编辑——它预期你将通过定义视图来完成其它所有工作。
结构化的内容
在 Django其它部分配合下,管理界面希望你使用结构化的数据。因此,它只支持存储于 Django模型中的数据进行编辑;对其它的数据,比如文件系统中的数据,你必须定制视图来编辑。
就此打住
现在可以肯定的是,Django的管理界面并不打算成为所有人的万能工具;相反我们选择了专心做一件事情,并把它完成得尽善尽美。
进行 Django的管理界面拓展时,必须坚持同样的设计理念。(注意,可扩展性并不是我们的目标)。由于通过定制 Django视图可以做任何事,同时也因为它们可以轻松地通过可视化方式整合到管理界面中(将在下一章将要描述),定制管理界面的内置机会特意地受到一点局限。
必须记住,尽管管理界面很复杂,但它始终只是一个应用程序。只要有充足的时间,任何Django的开发者都能做到admin接口做到的所有事。因此,我们需要寄希望于将来会有一个完全不同的admin接口会出现,这个新的接口拥有一系列不同的前提假设,并且工作方式也完全不同。
最后要指出的是,在本文写作之时,Django开发者们正在进行一个新的管理界面的开发工作,该版本将提供更多定制灵活性。当你阅读本文时,这些新特性也许已经进入了真实的 Django发布之中。你可以向 Django社区的某些人了解是否已经整合了 newforms-admin主干代码。
定制管理模板
Django提供了一些用于定制内置admin管理模板的工具,我们将简略地介绍一下。而对于其他的任务(比如对于工作流程的控制,或者更细粒度的权限管理),你需要阅读这一章中的创建自定义的admin视图一节。
现在,我们来看看如何来快速定制admin管理接口的外观。Django管理站点讲到了一些最常见的任务:修改商标(为那些讨厌蓝色的尖发老板),或者提供一个自定义的form。
更进一步的目标常常会包含,改变模板中的一些特殊的项。每一种admin的视图,包括修改列表、编辑表单、删除确认页以及历史视图,都有一个与之相关联的模板可以以多种方式来进行覆盖。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯