为你的员工或客户生成一个用户添加,修改和删除内容的后台是一项缺乏创造性和乏味的工作。因此,Django 全自动地根据模型创建后台界面。
Django 产生于一个公众页面和内容发布者页面完全分离的新闻类站点的开发过程中。站点管理人员使用管理系统来添加新闻、事件和体育时讯等,这些添加的内容被显示在公众页面上。Django 通过为站点管理人员创建统一的内容编辑界面解决了这个问题。
管理界面不是为了网站的访问者,而是为管理者准备的。
首先,我们得创建一个能登录管理页面的用户。请运行下面的命令:
...> py manage.py createsuperuser
键入你想要使用的用户名,然后按下回车键:
Username: admin
然后提示你输入想要使用的邮件地址:
Email address: admin@example.com
最后一步是输入密码。你会被要求输入两次密码,第二次的目的是为了确认第一次输入的确实是你想要的密码。
Password: **********
Password (again): *********
Superuser created successfully.
Django 的管理界面默认就是启用的。让我们启动开发服务器,看看它到底是什么样的。
如果开发服务器未启动,用以下命令启动它:
...> py manage.py runserver
现在,打开浏览器,转到你本地域名的 “/admin/” 目录, -- 比如 http://127.0.0.1:8000/admin/ 。你应该会看见管理员登录界面:
因为翻译功能默认是开启的,如果你设置了 LANGUAGE_CODE
,登录界面将显示你设置的语言(如果 Django 有相应的翻译)。
现在,试着使用你在上一步中创建的超级用户来登录。然后你将会看到 Django 管理页面的索引页:
你将会看到几种可编辑的内容:组和用户。它们是由 django.contrib.auth
提供的,这是 Django 开发的认证框架。
但是我们的投票应用在哪呢?它没在索引页面里显示。
只需要再做一件事:我们得告诉管理,问题 Question
对象需要一个后台接口。打开 polls/admin.py
文件,把它编辑成下面这样:
from django.contrib import admin
from .models import Question
admin.site.register(Question)
现在我们向管理页面注册了问题 Question 类。Django 知道它应该被显示在索引页里:
点击 "Questions" 。现在看到是问题 "Questions" 对象的列表 "change list" 。这个界面会显示所有数据库里的问题 Question 对象,你可以选择一个来修改。这里现在有我们在上一部分中创建的 “What"s up?” 问题。
点击 “What"s up?” 来编辑这个问题(Question)对象:
注意事项:
Question
模型中自动生成的DateTimeField
、字符字段 CharField
)会生成对应的 HTML 输入控件。每个类型的字段都知道它们该如何在管理页面里显示自己。DateTimeField
都有 JavaScript 写的快捷按钮。日期有转到今天(Today)的快捷按钮和一个弹出式日历界面。时间有设为现在(Now)的快捷按钮和一个列出常用时间的方便的弹出式列表。页面的底部提供了几个选项:
Save
) - 保存改变,然后返回对象列表。Save and continue editing
) - 保存改变,然后重新载入当前对象的修改界面。Save and add another
) - 保存改变,然后添加一个新的空对象并载入修改界面。Delete
) - 显示一个确认删除页面。通过点击 “今天(Today)” 和 “现在(Now)” 按钮改变 “发布日期(Date Published)”。然后点击 “保存并继续编辑(Save and add another)”按钮。然后点击右上角的 “历史(History)”按钮。你会看到一个列出了所有通过 Django 管理页面对当前对象进行的改变的页面,其中列出了时间戳和进行修改操作的用户名:
Java Swing教程 -Java Swing JScrollPaneJScrollPane为其他元素提供滚动功能。以下代码演示如何使用不同的选项创建JScrollPane:...
SWING 事件适配器适配器是用于接收各种事件的抽象类。这些类中的方法是空的。这些类的存在是为了方便创建监听器对象。SWING 适配...
断言所有的断言都包含在 Assert 类中public class Assert extends java.lang.Object这个类提供了很多有用的断言方法来编写测试用...
MyBatis的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的XML文件就显得相对简单。如果拿它跟具有相同...
foreach动态SQL的另一个常见使用场景是对集合进行遍历(尤其是在构建IN条件语句的时候)。比如:select id="selectPostIn" ...