Django(四)后台管理及Field参数
来源:互联网 发布:互联网视频监控软件 编辑:程序博客网 时间:2024/06/03 16:08
Django 提供了基于 web 的管理工具,自动管理工具是 django.contrib的一部分,django.contrib 是一套庞大的功能集,它是Django基本代码的组成部分。我们只要加少些代码,就可以实现强大的后台功能。与后台相关文件是每个app中的 admin.py 。下面就来学习一下Django的后台。
创建超级用户
后台管理都需要登录,登录的用户就是超级用户,这个用户拥有所有的权限,而且只能在本地项目里通过Django命令创建,也就是通过服务器是无法创建,保证了安全性,当然这个用户可以创建多个下属用户,并给这些用户授权。这个超级用户一般不要删除重新建。
在之前的基础上我们查看数据库(之前讲述过就不赘述),默认的auth_*表都是关于超级用户的关联表,由于还没有创建超级用户,所以只有auth_permission表有内容,里面包括了超级用户拥有的权限。其它的auth_*表都是空的。我们现在就创建超级用户,还是在项目的第一层demo下执行(输入用户名、邮箱、和密码,不要设置汉字):
python manage.py createsuperuser
然后可以查看数据库,在auth_user表里就可以看到建的超级用户了。
登录后台
创建好了后台的管理用户,我们还得把模型注册到后台里去,不然后台就只是一个空架子。还有就是后台登录的url必须配置。
后台模型注册
在login这个app模型中找到admin.py文件,admin.py文件是专门配置后台管理的文件,我们修改为如下(就是将我们在models.py里的两个数据表注册到后台让管理员能管理这两个表,在你新建了其它的表过后也在这里同样的注册):
from django.contrib import admin# Register your models here.from login.models import Membersfrom login.models import Typesadmin.site.register(Members)admin.site.register(Types)
- 后台管理的登录url配置
我们通过哪个网址进入后台界面呢,还需要在第二层demo目录下的urls.py文件修改为如下:
from django.conf.urls import urlfrom django.contrib import adminfrom login import viewsurlpatterns = [ url(r'^$', views.home), url(r'^login.html$', views.login), url(r'^admin/', admin.site.urls),]
其中admin.site.urls是django的后台管理路由,这样我们就可以通过链接:http://127.0.0.1:8000/admin/ 来进入后台管理了。
- 注意
先不着急启动项目,我们回过头看看login这个app下的models.py文件,在Members和Types这两个类里都有一个函数:
def __str__(self): return self.name
上述是在python3中这样使用,在python2中你需要改成,不然会报错:
def __unicode__(self): return self.name
后台汉化
汉化很简单,django支持多种语言,我们只需要在第二层的demo目录下将settings.py中的一个设置修改为如下:
LANGUAGE_CODE = 'zh-Hans' # 修改后台的字体为汉字,en-us-->zh-Hans
启动项目后台
如果你的模型里的函数是“str”就用python3,如果是“unicode”就把下面的python3改为python再执行:
python3 manage.py runserver 8000
打开链接:http://127.0.0.1:8000/admin/ 就能看到登录界面(汉化),然后输入你创建的超级用户名和密码登录,进去界面如下:
看到有两个版块,一个是django默认的认证和授权版块,在这个版块下我们可以添加下属管理用户和用户组,并可以对这些下属管理用户授权。
然后就是login版块,这是我们的一个app模型,将它里面的Members和Types注册到后台就会在这里进行管理,当你新建了其它app模型的时候,只要在对应模型里的admin.py文件里注册就能在后台管理了。
- 创建职员管理用户
我们点击用户右边的增加,建立一个user用户,如下图:
点击保存然后在弹出的页面设置权限,请将职员状态勾选上,这样你就可以通过这个用户登录到后台了:
然后我们把对members和types这两个数据表的权限赋给user用户:
然后我们注销当前admin超级管理员,然后用user用户登录界面如下:
Field参数
使用示例
切换到admin用户,点击Types右边的增加,出现如下图:
我们打开login这个app模型的models.py文件,在Types类是这样写的:
class Types(models.Model): name = models.CharField(max_length=20) types = models.IntegerField(default=4) def __str__(self): return self.name
这样你就得到上面那张图的结果,现在我们修改这个类为如下:
class Types(models.Model): TYPE_CHOICES = ( (0, '超级管理员'), (1, '管理员'), (2, '导师'), (3, '成员'), (4, '游客') ) name = models.CharField(max_length=20, verbose_name='名称') types = models.IntegerField(default=4, help_text='选择用户类型的编号', verbose_name='用户类型', choices=TYPE_CHOICES) def __str__(self): return self.name
然后我们保存,然后刷新刚才的页面会看到如下图:
首先我们得理解types是数据库中的一张表,其名字为login_types,然后name和types是这个表中的两列数据(两个字段),可以看到verbose_name就是这个字段在后台管理中显示的名称,没有设置就默认为该字段的名称,help_text就是在输入框下面显示的提示或帮助文字,choices是为这个输入框设置可选值(输入框改为下拉框)
- 参数值
下面是Field的参数对应的效果,下面的参数是django所有的Field类型都有的,全部都是可选项:
- Django(四)后台管理及Field参数
- Django后台管理系列之四
- Django框架之 Admin(后台管理)
- Django后台管理
- 使用django做管理后台
- Django 安装Xadmin后台管理
- django 修改model field后台默认的显示方式
- Django field
- Django field
- 用Django写博客(二)建立管理后台
- Pycharm+Django+Python+MySQL开发(一)后台管理数据库
- Python-Django(系统自带后台管理)
- django-自带admin后台如何给某些field赋默认值(比如user=request.user)然后隐藏它
- 给django admin后台管理user扩展下拉框及多选框的字段
- django 第一个项目-学习搭建博客 (三、Django admin 管理后台)
- Python Django基础教程(四)(admin站点管理)
- Django字段类型(field types)
- Django自动生成Admin后台管理页面
- 快来!MindManager 2018让你的超链接“瘦身”
- 2017-12-15 just do it. 永远都不算太晚!
- Flask学习记录之Flask-Login
- 社保账户余额不够发一年,我们的养老金被谁吃了?
- 详解java重载与覆写的区别
- Django(四)后台管理及Field参数
- __declspec关键字详细用法
- 编程风格
- jvm虚拟机工作机制【转】
- 步进电机加减速算法stm32单片机控制
- QT Model/View
- DOM的节点的插入 插入子节点与兄弟节点
- PostgreSQL的MVCC并发处理-----转载自互联网,并有所改进
- spark 排序 取top3