Django Admin

站点的管理者,而非访问者。

创建admin用户

首先,执行下面命令:

python manage.py createsuperuser

其次,输入用户名和密码:

Username:admin

在输入用户名之后,会提示输入邮箱地址,随便输入即可:

Email address:admin@example.com

最后,输入密码(最好使用数字和字符的组合,不然会被提示密码过于简单):

Password: **********
Password (again): *********
Superuser created successfully.

至此,admin用户就创建成功了。

服务启动

Django的admin站点默认是激活的,我们只需要启动Django服务,访问admin站点即可:

1、 启动Django服务:

python manage.py runserver

2、打开浏览器,访问地址http://127.0.0.1:8000/admin/,将会看到下面admin的登陆界面:

3、输入之前创建的admin用户的用户名、密码登入系统,将会看到如下如所示:

4、我们看到只有:Groups和Users这两个可编辑的内容;这两部分内容来自于django.contrib.auth,Django自带的认证框架

如何在admin site中管理我们自己的app(使我们自己的app也可以在admin中可修改/被管理)?

为了解决这个问题,我们只需要告诉admin,Question对象有一个admin接口,可以像下面这样修改polls/admin.py文件:

from django.contrib import admin

from .models import Question

admin.site.register(Question)

注:在Django的机制中,当我们修改了现有代码无需重启服务,Django会自动刷新服务识别到新的代码;但是当我们添加了新的文件或者模块,需要手动重启服务才可以

当我们再次访问Django admin站点或者刷新刚才的admin站点页面,会看到如下图所示界面:

点击Questions,进入修改questions页面,该页面显示了数据库中所有的questions,当前页面只有"What's up?"这个之前创建的question:

点击"What's up?"question,可以对其进行修改:

注意以下几点:

  • 该表单是根据Question数据模型自动生成的;
  • 不同数据模型的字段显示相应的HTML输入框宽度,换句话说:Django admin自己直到每种数据模型字段如何显示;
  • 每个DateTimeField字段的Dates取值:Today;times取值:Now;

页面的底部列出了一些可选项:

  • Save:保存修改,返回上一页面;
  • Save and continue editing:保存修改,重新加载修改页面并提示修改成功,可以继续修改;
  • Save and add another:保存修改,重新加载一个新的、空的表单;
  • Delete:跳转到是否删除的确认页面;

时区和语言

当我们修改或者新建question的时候,会发现"Date published"的时间和本机时间不一致,如下图所示:

仔细看,我们会发现在Time:Now的下面又一小行灰色的提示:Note:You are 8 hours ahead of server time.出现该问题的原因是,我们没有修改TIME_ZONE配置。打开mystie/settings.py文件,做如下修改:

TIME_ZONE = 'Asia/Shanghai'

重新加载页面,我们将会看见时间已经恢复到我们系统时间,并且Time下面的灰色提示也消失了:

我们可以通过"Today"、"Now"这两个快捷方式来修改"Date pbulished"的值,修改完成之后点击"Save and continue editing";然后点击页面右上角的"History",我们将会看见一个列表页面,里面记录了对该条目数据修改的完整记录,包括:日期/时间、用户、操作,如下图所示:

中文配置如下所示:

LANGUAGE_CODE = 'zh-hans'

最终效果如下图所示:

Django 2.0 学习(05):Django Admin的更多相关文章

  1. Django 2.0 学习(07):Django 视图(进阶-续)

    接Django 2.0 学习(06):Django 视图(进阶),我们将聚焦在使用简单的表单进行处理和精简代码. 编写简单表单 我们将用下面的代码,来替换之前的detail模板("polls ...

  2. Django 2.0 学习(04):Django数据库

    数据库设置/配置 打开mysite/settings.py,我们会发现Django是用的是默认的数据库SQLite,如下图所示: Django也是支持其它数据库的,比如PostgreSQL.MySQL ...

  3. Django 2.0 学习(12):Django 模板语法

    Django 模板语法 一.模板 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法 模板语法变量:{{ }} 在Django模板中遍历复杂数据结构的关键是句点字 ...

  4. Django 2.0 学习

    Django django是基于MTV结构的WEB框架 Model 数据库操作 Template 模版文件 View 业务处理 在Python中安装django 2.0 1 直接安装 pip inst ...

  5. Django 2.0 学习(19):Django 分页器

    Django 分页器 要使用Django实现分页功能,必须从Django中导入Paginator模块(painator - 分页器) views.py from django.shortcuts im ...

  6. Django 2.0 学习(10):Django 定制化

    定制化admin表单 通过使用admin.site.register(Question)注册Question模型,Django可以构造默认的表单.通常,可以通过对象的注册机制来告诉Django我们想要 ...

  7. Django 2.0 学习(08):Django 自动化测试

    编写我们的第一个测试 确定bug 幸运的是,在polls应用中存在一个小小的bug急需修复:无论Question的发布日期是最近(最后)的日期,还是将来很多天的日期,Question.was_publ ...

  8. Django 2.0 学习(06):Django 视图(进阶)

    概述 Django中的特方法,该方法代表了Django的Web页面,并且视图具有特定的模板.以博客应用为例进行说明,在博客应用中应该包含下面的视图: 博客主页:显示最近的一些记录: 详细页面:单个详细 ...

  9. Django 2.0 学习(01):Django初识与安装

    Django(Python Web框架) Django是一个开放源代码的Web框架,用Python写的.采用了MTV的框架模式,即模型M,模板T和视图V.它最初被开发是用来管理以新闻内容为主的网站,即 ...

随机推荐

  1. 菜鸟学Linux - 变量基本规则

    变量是一个很重要的概念,无论是bash脚本还是其他语言,都是如此.在bash中,创建变量很简单,给变量一个名称即可.默认情况下,变量的值为空.我们可以通过等号为变量赋值.需要注意的是,变量和变量的值不 ...

  2. nexys4开发板使用-第一篇(未完成)

    1. 下去下个原理图.今天准备研究下DDR的控制,看介绍新一代的Nexys 4 DDR最值得被关注的改良是将原先的16 MiBCellularRAM升级为128 MiB的DDR2 SDRAM内存.Di ...

  3. 回写盘写速度被限速为10M左右

    问题现像如下图所示: 用hd-speed等测试虚拟盘速度都能达到90M/s左右,但复制文件到虚拟盘速度最高只有10M/s 原因:由于客户机开机加载这个随机驱动和随机进程后,会对磁盘启动进程等有扫描检查 ...

  4. MySQL☞自连接

    自连接:一张表中根据自身列之间的关联关系,自己跟自己链接. A.创建一个user表,且插入数据,数据如下: B.分析: 把user表看成两张表,一张员工表,一张领导表,发现员工表中lead(领导编号) ...

  5. Python字符串格式化符号及转义字符含义(非常全!!!)

    字符串格式化符号含义 符号 说明 %c 格式化字符及其 ASCII 码 %s 格式化字符串 %d 格式化整数 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大 ...

  6. 【转】一款已上市MMO手游地图同步方案总结

    转自游戏开发主席 1. 客户端地图格子的相关知识 在2.5D的MMO游戏里,角色是通过3D的方式渲染,2D的地图是通过2D的方式显示,所以在客户端一般会有三个坐标系: a) 3D坐标系:所有需要3D渲 ...

  7. Idea Live Templates

    常用live templates 模板 注释 : * * @param $params$ * @return $return$ * $date$ $time$ chiyuanzhen743 */ lo ...

  8. 机器学习介绍(introduction)-读书笔记-

    一,什么是机器学习 第一个机器学习的定义来自于 Arthur Samuel.他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力的领域.Samuel 的定义可以回溯到 50 年代,他编写了一个 ...

  9. Java学习笔记-序

    最近开始学习java了,上班看书看得经常瞌睡,有时候想起来觉得挺重要的知识点想记在哪里又害怕忘记了,于是乎突然想到了博客园,所以今天上午就决定记在院子里了,先写了8是因为已经看到第八章了(读的是Jav ...

  10. 初涉 Deep Drive Dataset

    Berkeley 大学最近推出的针对自动驾驶的街景数据集,号称比 Cityscapes 数据量更大,可泛化性更好. 语义实例分割(Semantic Instance Segmentation) 数据集 ...