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

django admin 导出数据简单示例

django的admin简单使用

Django——admin组件简单入门

Django admin的简单使用2

Django admin后台美化(极其简单)

Django admin 组件 原理分析与扩展使用 之 sites.py