Django管理后台知识

一、创建管理后台

  • 在终端执行以下命令来创建一个管理员账号
python manage.py createsuperuser

第一个问题:django.db.utils.OperationalError: (1045, “Access denied for user ‘admin’@‘localhost’ (using password: YES)”)
在这里插入图片描述
解决方法:检查用户名密码在settings.py中是否设置错误。
第二个问题:pymysql.err.ProgrammingError: (1146, “Table ‘mrsoft.auth_user’ doesn’t exist”)

python manage.py migrate

执行上述命令进行数据库迁移即可解决。

  • 重新启动服务器
python manage.py runserver

在网址中输入:127.0.0.1:8000/admin,即可访问Django提供的项目后台登录页。

  • 定义好数据类型后,就可以修改admin.py中配置文件。创建UserAdmin,和ArticleAdmin后台控制模型类。
  • ModelAdmin类是一个模型在admin页面里的展示方法,通过设置它内置的属性,就可以满足大多数需求。
class UserAdmin(admin.ModelAdmin):
    """
    创建UserAdmin类,继承于admin.ModelAdmin
    """
    #  配置展示列表,在User版块下的列表展示
    list_display = ('username', 'email')
    # 配置过滤查询字段,在User版块下右侧过滤框
    list_filter = ('username', 'email')
    # 配置可以搜索的字段,在User版块下右侧搜索框
    search_fields = (['username','email'])

class ArticleAdmin(admin.ModelAdmin):
    """
    创建UserAdmin类,继承于admin.ModelAdmin
    """
    #  配置展示列表,在User版块下的列表展示
    list_display = ('title', 'content','publish_date')
    # 配置过滤查询字段,在User版块下右侧过滤框
    list_filter = ('title',)  # list_filter应该是列表或元组
    # 配置可以搜索的字段,在User版块下右侧搜索框
    search_fields = ('title',) # search_fields应该是列表或元组

# 绑定User模型到UserAdmin管理后台
admin.site.register(User, UserAdmin)
# 绑定User模型到UserAdmin管理后台
admin.site.register(Article, ArticleAdmin)
  • 再次输入网址127.0.0.1:8000/admin/
    在这里插入图片描述
  • 选中一个模型,即可进行相应的操作。
    在这里插入图片描述

一些设置

1、ModelAdmin.fields
fields属性定义添加数据时要显示的字段。
让某些字段在一行内展示
在这里插入图片描述
在admin.py中增加。

  fields=(('id','title'),'content','publish_date')

在这里插入图片描述
让id和title在一行内。

2、ModelAdmin.fieldset
fieldsets就是根据字段对页面进行分组显示或布局,是一个二元元组的列表。

    #显示字段
    fieldsets=(
        ('Main',{
    
    
            'fields':('id','title','publish_date')
        }),
        ('Advance',{
    
    
            'classes':('collapse'),
            'fields':('content',),
        })
    )

fieldsets字段将页面分为2个布局:Main 和Advance。classes一个包含额外的CSS类的元组,比较有用的样式是collaspe(将fieldsets折叠起来),wide(让它具备更宽的空间)。
在这里插入图片描述
单击show,将展开Adance部分的字段内容。
在这里插入图片描述
3、list_display
list_display指定显示在列表页面上的字段。

猜你喜欢

转载自blog.csdn.net/weixin_46111970/article/details/127574615
今日推荐