我们看到我们创建一个默认的django的项目,他在project的urls有一个admin的url的路径

 

我们访问这个路径,他是一个登陆框,需要输入用户名和密码

 

 我们就需要创建这个用户名和密码,如果你是刚刚创建的django项目,直接创建用户会报错,你首先需要先执行 python manager.py makemigrations和python manager.py migrate

去创建用户

然后我们就可以用用创建的用户登陆admin

 

注册表的对象

我们还可以注册表的对象到admin中

在project目录下有admin用户,我们下面的方式注册表到admin中

 

 

 

注册成功后,我们再次登陆admin,就可以看到我们注册的表

 

 我们点user表

 

 这里为什么显示周雍博呢?这里其实显示的内容是我打印这个对象的结果,我们知道在面向对象的学校中,我们去print这个对象,他其实是执行的类的__str__方法,我们看下我们的user表的__str__方法是什么 /

 

 

 

 我们还可以为user表添加数据,他会自动帮我们关联我们要关联的一对多的表

 

 

 

前面的例子中在web页面,他只显示一个名称,我们还想显示指定的字段该如何处理呢?

1、需要在admin中创建一个类,这个类的作用就是告诉web我要显示那些字段

 

 2、然后我们在登陆web页面

 

 3、我们看到user_name这些字段都是英文的,我们可以在创建表的时候把他汉化了用verbose_name这个字段

 

 

通过在modes中可以把他汉化了

 

 然后我们在登陆web页面

 

 

 在admin中还有一些提供的功能,我还没有实际测试,后面使用下

 

 

上面的list_display的列表唯独不能写多对多的字段,因为django的admin不知道到底显示哪个字段

 

上面每一项功能中,必须要加一个逗号,不然django会起不来

 

 过滤功能,搜索功能,排序功能,我们都已经实现

 

在创建表的时候,我们可以设定某个字段不可更改

 

django的admin实现批量操作的方法

class testbook(admin.ModelAdmin):

    def test_action(self,request,queryset):
        print(queryset)

    actions = [test_action]
    # test_action.__name__ = "测试批量操作的函数"
    test_action.short_description = "测试批量操作的函数

  

重点是这里

 

 页面的效果如下

 

 函数的queryset就是我们选中的对象

<QuerySet [<book: 书籍8>, <book: 书籍7>]>

 

posted on 2018-04-10 07:19  bainianminguo  阅读(321)  评论(0编辑  收藏  举报