admin是django强大功能之一,它能从数据库中读取数据,呈现在页面中,进行管理。
创建超级用户
在你所在的django项目路径下,输入代码:
python manage.py createsupersuer |
接下来,按照提示填写用户名,邮箱(可以为空),密码,确认密码,这样我们就成功的创建好了一个超级用户。
之后,我们运行我们的项目:
python mannage.py runserver 4000 |
这时在你的浏览器输入localhost:4000/admin/
,就会弹出这样的界面。
在里面输入你的账号密码,就可以进入django的管理界面:
我们发现django已经给我们写好了用户组和用户的数据库,在这个页面可以用来添加用户和用户组。
注册数据库到admin
使用register方法
首先,在admin.py下导入所有的数据库
from blog.models import * |
接下来,将想要显示在admin中的数据库注册到admin
admin.site.register(UserInfo1) |
使用register装饰器
在你自定义的子类上面添加装饰器,表明这里的自定义内容时对应你的哪张表的。
class MyAdmin(admin.ModelAdmin):
pass
刷新我们的网页,就可以看到我们自己建的数据库了
添加其他功能
修改表单显示
默认这里显示的都是UserInfo1,根本看不出,更不谈管理,那么我们如何修改这里显示的内容呢
很简单,在我们在models中创建表格的时候,自定义一个__str__
函数,就可以自定义显示字段。
def __str__(self): |
修改表单显示多个字段
这需要我们在admin中创建一个admin.ModelAdmin
的子类,然后在注册表单的时候,将这个参数加上就可以了。
class MyAdmin(admin.ModelAdmin): |
刷新页面,发现我们想要的已经显示出来了
添加搜索功能
数据量不大的时候,找想要的很方便,但数据量增大的时候,查找功能就必不可少了。
添加方法,和上面一样在子类里面添加
search_fields = ("username","user_type") |
右侧的参数,则是添加查找内容的范围。
添加筛选功能
list_filter = ('username', ) |
其他需求
修改语言为中文
在settings里面将LANGUAGE_CODE
字段的值改为zh-hans
LANGUAGE_CODE = 'zh-hans' |
用户权限控制
定制加载的列表, 根据不同的人显示不同的内容列表。
例如:如果是超级管理员就列出所有的,如果不是,就仅列出访问者自己相关的。
class MyModelAdmin(admin.ModelAdmin): |