Django 2.0 学习(05):Django Admin

Posted 月缺一格

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 2.0 学习(05):Django Admin相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

记一次django学习1.0和2.0区别

学习django就看这本书了!django book 2.0中文版

Django 2.0官方文档中文 渣翻 总索引(个人学习,欢迎指正)

Django 2.0:sqlite IntegrityError:外键约束失败

AJAX 路由到 Django URL(使用 Django 2.0“路径”urlpatterns)

模板不存在“django 2.0”