浅谈Python之Django(四)

目录
  • 1.pip3 install xadmin
  • 2.解决方案
  • 3. 修改配置文件setting.py中的INSTALLED_APPS
  • 4.修改urls中的路由
  • 5.访问
  • 6.设置显示的字段与搜索的字段
  • 7.__str __
  • 8.全局配置
  • 总结

1.pip3 install xadmin

因为我是django2.0,直接使用命令一直报错,如下图

2.解决方案

下载xadmin源包

下载地址:https://github.com/Zjvngvn/xadmin

pip3 install 源码的地址(不用解压) 如:pip3 install
E:\firefoxDownload\xadmin-django2.zip

3. 修改配置文件setting.py中的INSTALLED_APPS

添加 xadmin
crispy_forms

INSTALLED_APPS = [
‘django.contrib.admin',
‘django.contrib.auth',
‘django.contrib.contenttypes',
‘django.contrib.sessions',
‘django.contrib.messages',
‘django.contrib.staticfiles',
‘users',
‘course',
‘organization',
‘operation',
‘xadmin',
‘crispy_forms'
]

4.修改urls中的路由

 from django.contrib import admin
from django.urls import path
import xadmin
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('xadmin/', xadmin.site.urls),
]

5.访问

重启:python manage.py runserver 0.0.0.0:8888
http://127.0.0.1:8888/xadmin

6.设置显示的字段与搜索的字段

在users App下创建xadmin.py 文件
添加如下代码

import xadmin
from .models import EmailVerifyRecord,Banner
class EmailVerifyRecordAdmin(object):
    # 列表显示的字段
    list_display = ['code','email','send_type','send_time']
    # 搜索字段
    # search_fields = ['code','email']
    # 搜索字段
    list_filter = ['code','email','send_type','send_time']
class BannerAdmin(object):
    # title = models.CharField(max_length=100, verbose_name=u"标题")
    # image = models.ImageField(max_length=100, upload_to="banner/%Y/%m", verbose_name=u"轮播图")
    # url = models.URLField(max_length=100, verbose_name=u"访问地址")
    # index = models.IntegerField(verbose_name=u"顺序", default=100)
    # add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间")
    list_display = ['title', 'url', 'index', 'add_time']
xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)
xadmin.site.register(Banner,BannerAdmin)

在course App下创建xadmin.py 文件
添加如下代码

import xadmin
from .models import Course,Lesson,Video,CourseResource
class CourseAdmin(object):
    list_display = ['name', 'desc', 'detail', 'degree','learn_time','students','fav_nums','click_nums']
    # # 搜索字段
    # # search_fields = ['code','email']
    # # 搜索字段
    # list_filter = ['code', 'email', 'send_type', 'send_time']
class LessonAdmin(object):
    list_display = ['course', 'name', 'add_time']
    # 搜索字段
    search_fields = ['course','name','add_time']
    list_filter = 'course','name','add_time'
class VideoAdmin(object):
    list_display = ['lesson', 'name', 'add_time']
class CourseResourceAdmin(object):
    list_display = ['course', 'name', 'download','add_time']
xadmin.site.register(Course,CourseAdmin)
xadmin.site.register(Lesson,LessonAdmin)
xadmin.site.register(Video,VideoAdmin)
xadmin.site.register(CourseResource,CourseResourceAdmin)

搜索外键课程

搜索外键 外键名称为course 在class Course为name,用__拼接course与name就可以对外键进行搜索了

将course App的class Course中的list_filter改成如下代码:

list_filter = 'course__name','name','add_time'

添加章节的时候出现了如下问题该怎么解决???

7.__str __

在course App的models.py的class Course中加上如下代码

def __str__(self):
	return self.name

__str__是python的object基类的一个方法,也就是说python所有的类都有,当然django的modle类也有,我们平常创建一个类的对象,print这个对象时一般会是<_main.TestClass
object at
0x7f4126578828>,即这个对象的所属类和内存地址,我们改写类中的__str__方法后可以在print时得到想要的易于人阅读的对象的信息

在Django中,如果用的是Python3的话就只能用__str__方法,如果是Python2的话就使用__unicode__方法。因为更安全一些。看看文档

8.全局配置

users App下adminx.py的代码如下:

import xadmin
from .models import EmailVerifyRecord,Banner
from xadmin import views
class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True
class GlobalSettings(object):
    site_title = '慕学后台管理系统'
    site_footer = '慕学在线网'
    menu_style = 'accordion'
class EmailVerifyRecordAdmin(object):
    # 列表显示的字段
    list_display = ['code','email','send_type','send_time']
    # 搜索字段
    # search_fields = ['code','email']
    # 搜索字段
    list_filter = ['code','email','send_type','send_time']
class BannerAdmin(object):
    # title = models.CharField(max_length=100, verbose_name=u"标题")
    # image = models.ImageField(max_length=100, upload_to="banner/%Y/%m", verbose_name=u"轮播图")
    # url = models.URLField(max_length=100, verbose_name=u"访问地址")
    # index = models.IntegerField(verbose_name=u"顺序", default=100)
    # add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间")
    list_display = ['title', 'url', 'index', 'add_time']
xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)
xadmin.site.register(Banner,BannerAdmin)
xadmin.site.register(views.BaseAdminView,BaseSetting)
xadmin.site.register(views.CommAdminView,GlobalSettings)

让后台可以显示多种样式

class BaseSetting(object):
enable_themes = True
use_bootswatch = True

xadmin.site.register(views.BaseAdminView,BaseSetting)

修改后台名称

添加如下代码:

class GlobalSettings(object):
    site_title = '慕学后台管理系统'
 xadmin.site.register(views.CommAdminView,GlobalSettings)

修改页脚

class GlobalSettings(object):
    site_footer = '慕学在线网'

修改菜单显示样式

class GlobalSettings(object):
    menu_style = 'accordion'


将英文菜单设置为中文菜单

修改users App下的apps.py文件为如下代码:

class UsersConfig(AppConfig):
    name = 'users'
    verbose_name = u'用户信息'

修改users App下的__init__.py文件为如下代码:

default_app_config = "users.apps.UsersConfig"

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 浅谈Python之Django(二)

    目录 django设计 数据表生成与修改各APP models设计 users models 设计 course models 设计 organization models 设计 operation models 设计 总结 django设计 user-用户管理 curser-课程管理 organization-机构和教师管理 数据表生成与修改各APP models设计 users models 设计 修改users目录下的models # _*_ encoding:utf-8 _*_ from

  • Python Django模型详解

    目录 Django模型 字段类型 字段类型的参数 外键 总结 Django模型 Django的模型定义在models.py文件中.模型是MVT中的M,也相当于MVC中的M. 在Django中,模型必须继承自Model类.例如: from django.db import models # Create your models here. class BookInfo(models.Model): # 一个模型类就会对应生成数据库中的一张表 """书籍模型""

  • 浅谈Python之Django(三)

    目录 django-admin基本介绍 激活django-admin 创建访问django-admin的超级用户 访问django-admin 修改django-admin为中文 修改django-admin为中国时区 后台放出users可以对用户信息进行修改 总结 django-admin基本介绍 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 配置文件settings.py 中的INSTALLED_APPS

  • python中通过Django捕获所有异常的处理

    目录 概述 Django 统一异常处理 统一异常处理具体设计 自定义异常模块 自定义状态码枚举类 响应信息统一结果的封装 完善统一异常处理逻辑 应用场景 注册校验 源代码 尾语 概述 在项目中统一异常处理,可以防止代码中有未捕获的异常出现.本文介绍如何在 Django 项目中进行统一异常的处理,再结合状态码枚举类对项目异常信息进行日志记录. Django 统一异常处理 在 Django 项目中可以自定义 中间件类 继承 django.middleware.common 下的 Middleware

  • 浅谈Python之Django

    目录 工具版本 创建工程djangostart 创建项目message 创建一些辅助目录 连接数据库(保证自己的数据库已启动) 生成数据表 总结 工具版本 python版本:3.8 django版本:2.0.0 mysql版本: 5.5.53 pip3 创建工程djangostart Django-admin startproject djangostart 创建项目message 从day17目录下执行命令 cd djangostart Django-admin startapp messag

  • 浅谈Python之Django(四)

    目录 1.pip3 install xadmin 2.解决方案 3. 修改配置文件setting.py中的INSTALLED_APPS 4.修改urls中的路由 5.访问 6.设置显示的字段与搜索的字段 7.__str __ 8.全局配置 总结 1.pip3 install xadmin 因为我是django2.0,直接使用命令一直报错,如下图 2.解决方案 下载xadmin源包 下载地址:https://github.com/Zjvngvn/xadmin pip3 install 源码的地址(

  • 浅谈Python的Django框架中的缓存控制

    关于缓存剩下的问题是数据的隐私性以及在级联缓存中数据应该在何处储存的问题. 通常用户将会面对两种缓存: 他或她自己的浏览器缓存(私有缓存)以及他或她的提供者缓存(公共缓存). 公共缓存由多个用户使用,而受其他某人的控制. 这就产生了你不想遇到的敏感数据的问题,比如说你的银行账号被存储在公众缓存中. 因此,Web 应用程序需要以某种方式告诉缓存那些数据是私有的,哪些是公共的. 解决方案是标示出某个页面缓存应当是私有的. 要在 Django 中完成此项工作,可使用 cache_control 视图修

  • 浅谈python 四种数值类型(int,long,float,complex)

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结果,在一个新分配的对象的值. Number对象被创建,当你给他们指派一个值.例如: var1 = 1 var2 = 10 您也可以删除数字对象的参考,使用del语句. del语句的语法是: del var1[,var2[,var3[

  • 浅谈Python基础之I/O模型

    一.I/O模型 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别? 这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blockin

  • 浅谈python中的数字类型与处理工具

    python中的数字类型工具 python中为更高级的工作提供很多高级数字编程支持和对象,其中数字类型的完整工具包括: 1.整数与浮点型, 2.复数, 3.固定精度十进制数, 4.有理分数, 5.集合, 6.布尔类型 7.无穷的整数精度 8.各种数字内置函数及模块. 基本数字类型 python中提供了两种基本类型:整数(正整数金额负整数)和浮点数(注:带有小数部分的数字),其中python中我们可以使用多种进制的整数.并且整数可以用有无穷精度. 整数的表现形式以十进制数字字符串写法出现,浮点数带

  • 浅谈python脚本设置运行参数的方法

    正在学习Django框架,在运行manage.py的时候需要给它设置要监听的端口,就是给这个脚本一个运行参数.教学视频中,是在Eclipse中设置的运行参数,网上Django大部分都是在命令行中运行manage.py时添加参数,没有涉及到如何在pycharm中设置运行参数.以下是两种设置运行参数的方法(以manage.py为例),不设置运行参数时,运行结果为 D:\Python2.7\python.exe "D:/Django project/DjangoProject1/manage.py&q

  • 浅谈python输出列表元素的所有排列形式

    例如: ['a', 'b', 'c'] 输出 ['a', 'b', 'c'] ['a', 'c', 'b'] ['b', 'a', 'c'] ['b', 'c', 'a'] ['c', 'a', 'b'] ['c', 'b', 'a'] 方法一:利用递归的方式实现 def permutation(li): len_list = len(li) if len_list == 1: return li result = [] for i in range(len_list): res_list =

随机推荐