Django admin

Posted waller

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django admin相关的知识,希望对你有一定的参考价值。

Django admin后台管理

admin后台管理可以帮助你快速的实现已经注册了的模型表数据的增删改查

使用

1.在项目文件夹的admin.py文件中注册你要操作的模型表
2.创建超级管理员,登录后台进行数据的管理

步骤详情

admin.py:

# 注册模型表用的方法
admin.site.register(模型表)

 

技术图片

技术图片

models.py

class Meta:
   verbose_name_plural = 表名
# admin后台中文显式表名

 

技术图片

 

技术图片

创建超级管理员 createsuperuser

技术图片

 

技术图片

admin url 规律

django admin会自动给注册了的模型表生成起码四条url(增删改查)

http://127.0.0.1:8000/admin/app01/userinfo/  展示数据
http://127.0.0.1:8000/admin/app01/userinfo/add/  添加数据
http://127.0.0.1:8000/admin/app01/userinfo/2/change/  编辑数据
http://127.0.0.1:8000/admin/app01/userinfo/2/delete/  删除数据
            
http://127.0.0.1:8000/admin/app01/article/  展示数据
http://127.0.0.1:8000/admin/app01/article/add/  添加数据
http://127.0.0.1:8000/admin/app01/article/2/change/  编辑数据
http://127.0.0.1:8000/admin/app01/article/2/delete/  删除数据

 

admin 五大参数

1.list_display:控制展示字段信息(不能放多对多外键字段)
2.list_display_links:控制跳转链接
3.search_fields:多条件的或查询
    页面上会出现一个搜索框
4.list_filter:过滤 (推荐放外键字段)
    右侧过滤栏
5.actions:批量处理函数
    def patch_init(self,request,queryset):
            queryset.update(...)
        patch_init.short_description = 函数注释
        actions = [patch_init,]

 

admin 启动源码

class ModelAdmin(BaseModelAdmin):
    ...
    # 配置类
        
class AdminSite(object):
    def __init__(self, name=admin):
        self._registry = {}  # model_class class -> admin_class instance
    def register(self, model, admin_class=None, **options):
        if not admin_class:
            admin_class = ModelAdmin
        # Instantiate the admin class to save in the registry
         self._registry[model] = admin_class(model)
    
site = AdminSite()
admin.py注册语句
admin.site.register(models.Publish)  # 仅仅是将注册了的模型表和以模型表为参数实例化产生的对象
# 当做键值对存入了site对象中的_registry字段
?# >>>:
{
    <class django.contrib.auth.models.Group>: <django.contrib.auth.admin.GroupAdmin object at 0x000001A7689CE438>, 
    <class django.contrib.auth.models.User>: <django.contrib.auth.admin.UserAdmin object at 0x000001A768A03908>,
    <class app01.models.Book>: <app01.admin.BookConfig object at 0x000001A768A03978>, 
    <class app01.models.Publish>: <django.contrib.admin.options.ModelAdmin object at 0x000001A768A1A400>,
    <class app01.models.Author>: <django.contrib.admin.options.ModelAdmin object at 0x000001A768A1A518>, 
    <class app01.models.AuthorDetail>: <django.contrib.admin.options.ModelAdmin object at 0x000001A768A1A550>
}

 

?

 

以上是关于Django admin的主要内容,如果未能解决你的问题,请参考以下文章

django1.6 admin不能登录

如何在 Django Summernote 中显示编程片段的代码块?

Django 1.6 到 1.11 Admin.py 迁移

Django admin后台操作

怎么使用django里面admin的部分内容

Django内置 Admin