Django小笔记-站点管理

admin站点管理
    
    概述:
        内容发布:负责添加、修改、删除内容
        公告访问

    配置admin应用
        在settings.py文件中的INSTALLED_APPS中添加'django.contrib.admin'(一般会自动添加)

    创建管理员用户
        执行<python manage.py createsuperuser>  一次输入用户名、邮箱、密码

        D:\>cd  D:\Python_pycharm\Python3.6.0\day34\1_project\project
        D:\Python_pycharm\Python3.6.0\day34\1_project\project>python manage.py createsuperuser
        
        报错:django.db.utils.OperationalError: (2003, "Can't connect to     MySQL server on '127.0.0.1' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")

        解决方法:将C:\Windows\System32\drivers\etc\hosts文件中下面这名话放开:
                    127.0.0.1  localhost
                 将DATABASES中的'HOST':'localhost'改为'HOST':'127.0.0.1'
                 重启mysql服务


        D:\Python_pycharm\Python3.6.0\day34\1_project\project>python manage.py createsuperuser
        Username (leave blank to use 'asus'): sunck
        Email address: 11111@qq.com   (这个邮箱随便写)
        Password:        (要尽量长一点,输入之后看不到,我输入的是1234567890a)
        Password (again):
        Superuser created successfully.


        然后进入http://127.0.0.1:8000/admin网页,(如果进不去,重新创建用户python  manage.py  runserver),登录刚刚的账号密码,会跳转到新页面

        如果觉得英文不好,可以汉化。在settings中,将LANGUAGE_CODE = 'en-us'  TIME_ZONE = 'UTC'(111-113行左右)改为LANGUAGE_CODE = 'zh-Hans'   TIME_ZONE = 'Asia/Shanghai',然后重新进入http://127.0.0.1:8000/admin就成功汉化了

    管理数据表
        修改admin.py文件    。
            直接添加以下语句
                from .models import Grades,Students
                #注册
                admin.site.register(Grades)
                admin.site.register(Grades)
            刷新http://127.0.0.1:8000/adminadmin页面,就会看到Grades、Students这两张表了

        自定义管理页面
            from .models import Grades,Students
            #注册
            class GradesAdmin(admin.ModelAdmin):
                #列表页属性
                list_display  = ['pk','gname','gdate','ggirlnum','gboynum','isDelete']      #要显示的字段
                list_filter   = ['gname']  #过滤器:过滤字段,以gname为例
                search_fields = ['gname']  #搜索字段,要搜索哪个就添加哪一个,以gname为例
                list_per_page = 5         #分页,(超过几条数据就分页)

                #添加、修改页属性
               # fields    = ['ggirlnum','gboynum','gname','gdate','isDelete']      #规定属性的先后顺序
                fieldsets = [("num",{"fields":['ggirlnum','gboynum']}),("base",{"fields":['gname','gdate','isDelete']})]      #给属性分组
            #注意fields 和fieldsets 不能同时使用

            admin.site.register(Grades)
            admin.site.register(Students)

            在http://127.0.0.1:8000/admin/myApp/grades/add/页增加一条数据,(ggirlnum:1  gboynum:50  gname:python05 gdate:2018.8.9)保存,在数据库中查看,这条数据就存在数据库中了


            关联对象
                需求:在创建一个班级时可以直接添加几个学生
                class Studentsnfo(admin.TabularInline):
                    model = Students
                    extra = 2       #设置默认显示条目的数量

                class GradesAdmin(admin.ModelAdmin):
                    inlines = [StudentsInfo]   #inline把StudentsInfo关联起来

            布尔值显示问题
                class StudentsAdmin(admin.ModelAdmin):
                    def gender(self):
                        if self.sgender:
                            return "男"
                        else:
                            return "女"
                gender.short_description = "性别"     #设置页面列的名称

                list_display = ['pk', 'sname', 'sage', gender, 'scontend','sgrade' 'isDelete']

            执行动作位置问题
                    list_display = ['pk', 'sname', 'sage', gender, 'scontend','sgrade' 'isDelete']
                    list_per_page = 3
                    
                    actions_on_top = False#执行动作位置
                    actions_on_bottom = True    #执行动作位置

                admin.site.register(Students)

        使用装饰器完成注册

            将admin.site.register(Students)换成@admin.register(Students)并放在class StudentsAdmin上面

            @admin.register(Students)
            class StudentsAdmin(admin.ModelAdmin):
                def gender(self):
                    if self.sgender:
                        return "男"
                    else:
                        return "女"
                gender.short_description = "性别"     #设置页面列的名称

                list_display = ['pk', 'sname', 'sage', gender, 'scontend','sgrade' 'isDelete']
                list_per_page = 3

                actions_on_top = False#执行动作位置
                actions_on_bottom = True    #执行动作位置

            #admin.site.register(Students)
            

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值