Django的admin介绍

我们看到我们创建一个默认的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>]>

原文地址:https://www.cnblogs.com/bainianminguo/p/8776085.html