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