django的admin简单使用
Posted onlyhold
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django的admin简单使用相关的知识,希望对你有一定的参考价值。
新建完项目之后,我们是可以直接访问admin后台的,django不会为我们生成任何的登录用户,但django为我们提供了一个方法来创建用户:进入run manage.py task下,creatsuperuser 然后回车,然后输入用户名和密码,这样就完成了超级用户的建立,我们就可以使用这个用户去登录django的admin后台。
登录进入之后,我们会发现系统是全英文的,我们可以通过修改setting.py来切换成中文的
LANGUAGE_CODE = \'zh-hans\' #中文 1.8版本之后换成了该名称
TIME_ZONE = \'Asia/shanghai\' #时区
USE_I18N = True
USE_L10N = True
USE_TZ = False #默认是true,我们需要改成false,因为如果不改,我们添加数据库的时候生成的时间就会是UTC时间
设置完成之后,重启
在django的后台管理系统中,我们可以注册任何一个建立的model表,注册之后,我们可以对表进行增删改查
例如我们把userprofile注册到后台系统中:
在user app之下有一个admin.py文件,它就是用来注册后台管理系统的,这是在创建APP之后自动生成好的,
注意:当生成数据库的时候出现如下错误时:
那是因为我们把其他APP都放在APPS当中,它会在我们的migrations文件的外键的前边加上了apps路径,因为我们已经把apps加入到跟路径之下了,所以会出错,我们需要把所有的该文件中所有的apps去掉
其实django的admin还是不够强大,我们下面介绍更加强大的后台管理系统xadmin:
1、安装xadmin:pip install xadmin 或者
安装好之后,我们需要把xadmin加入到setting.py的app当中去:
\'xadmin\',
\'crispy_forms\',
然后把admin指向xadmin的URL
url(r\'^xadmin/\', xadmin.site.urls),
安装完xadmin之后,我们需要把xadmin的表同步过来(makemigration创建)
2、第二中安装方法是通过源码安装:
到github下载xadmin的源码,把源码放到项目的根目录下,然后新建extra_apps(存放第三方的源码包),然后把xadmin拖放到该文件夹下,然后也需要和APPS一样在setting.py中设置搜索路径
sys.path.insert(0, os.path.join(BASE_DIR, \'extra_apps\'))
如果之前使用pip安装过,那我们需要使用pip uninstall卸载掉
3、把model注册到xadmin后台中:
我们需要在APP目录下新建adminx.py文件,然后在里面填写model注册xadmin的类
class EmailVerifyRecordAdmin(object): #注意是直接继承顶层的object类
pass
定义完类之后,就可以注册model了:
from xadmin import views
from .models import EmailVerifyRecord,Banner
xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)
注册上之后,我们登录后台系统就能看到可以对数据库EmailVerifyRecord进行增删改查,如果想要这些数据表的字段在后台显示为中文,就需要在设计数据字段的时候加上verbose_name的值;
添加EmailVerifyRecord记录会发现添加失败,提示xadmin的log不存在,那是因为之前使用pip uninstall卸载掉了之前的admin的log,所以需要重新使用makeigration xadmin 和migrate xadmin生成数据表;
我们可以指定后台页面显示的数据表的列,我们需要在定义的admin类中给list_display 赋值,如下:
class EmailVerifyRecordAdmin(object):
list_display = [\'code\', \'email\', \'send_type\', \'send_time\']
设置完上述的配置之后就可以对数据表进行增删改,但是还无法根据字段来查询,我们需要在类EmailVerifyRecordAdmin里定义search字段:
search_fields = [\'code\', \'email\', \'send_type\']
这样我们也就可以通过配置的字段进行筛选数据了,但是如果我们想通过时间去筛选数据怎么办呢?这里我们就需要配置另外一个字段:
list_filter = [\'code\', \'email\', \'send_type\', \'send_time\']
页面就会出现过滤器的图标,这样我们就可以通过时间或者其他的字段进行筛选;
如果添加的数据字段中有外键,就需要制定外键的哪个字段进行搜索,如下处理:
list_filter = [\'course__name\', \'name\', \'add_time\',]
以上是关于django的admin简单使用的主要内容,如果未能解决你的问题,请参考以下文章