学生管理系统模型修改.py文件的方法及方法

优采云 发布时间: 2021-07-24 04:01

  学生管理系统模型修改.py文件的方法及方法

  在上一篇文章中,我们已经初步构建了学生管理系统的模型,现在让我们继续完善它。

  1、上传图片/文件等资源

  有时需要添加一些附件。比如大一新生刚入学,大家都不熟。希望用照片加深印象,方便教学管理。

  首先修改demo/urls.py文件,在urlpatterns中添加static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT):

  from django.conf.urls.static import static

from djproject import settings

urlpatterns = [

path('xadmin/', xadmin.site.urls),

]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

  然后在demo/settings.py文件中添加

  #===student===

# 指定上传位置

LOCATION = os.path.join('/', 'Users', 'babybus')

# 媒体文件根目录

MEDIA_ROOT = os.path.join(LOCATION, 'Media')

ROOT_URL = '/'

MEDIA_URL = '/media/'

  上传图片需要获取路径,在models.py文件中导入os模块

  import os

  在models.py文件的Students类中添加路径获取方法和models.ImageField字段:

  def get_photo(self, filename):

return os.path.join('photo', '%s_%s_%s_%s' % (self.class_name, self.name, self.id, os.path.splitext(filename)[1]))

photo = models.ImageField(verbose_name='照片', upload_to=get_photo, blank=True, null=True)

  同时同步数据库操作,让页面多了一个上传照片的选项,选择照片并保存:

  

  2、过滤、过滤、排序

  1)filter

  今年学校录取率爆满,生源特别好。要在数据库中找到相应的学生,您必须使用搜索功能。

  修改adminx.py文件,在StudentsAdmin类中添加:

  search_fields = ('name',)

  

  如果我们要按班级或学科查找该班级的所有学生或该学科的选修课,方法是否相同?我们先试试:

  search_fields = ('name', 'class_name', 'subjects',)

  

  这里发生了什么?原来我们搜索到的“class”和“discipline”这两个字段是外键,另一个是多对多的关系。 Student模型中的两个字段名不是它们的实际名称,还有“__”两个下划线,然后加上外键或者多对多关系的实际字段名:

  search_fields = ('name','class_name__class_name', 'subjects__name')

  

  现在一切都准备好了。

  2)过滤器:

  如果只想查看student表中男生或女生的信息,那么使用过滤功能:

  修改adminx.py文件,在StudentsAdmin类中添加:

  list_filter = ('sex',)

  

  3)排序:

  如果我们想让学生按照某个字段的顺序排序,还需要在adminx.py文件中的StudentsAdmin类中添加排序选项:

  # 顺序排序

ordering = ('age','name')

#逆序排序,在前面加一个减号“-”, 例如按年龄倒序排序

ordering = ('-age',)

  这意味着同时按年龄和姓名字段排序。

  二、custom网站信息

  我们要在网站登录时显示站点名称,修改adminx.py文件,添加LoginViewAdmin类,并注册:

  from xadmin.views.website import LoginView

class LoginViewAdmin(LoginView):

title = '*敏*感*词*管理系统'

xadmin.site.register(LoginView, LoginViewAdmin)

  

  还可以继续修改,比如浏览器标题和左上角的页面标题以及页脚的版权信息:

  from xadmin.views import CommAdminView

class GlobalSetting(CommAdminView):

# 左上角及浏览器标题

site_title = '*敏*感*词*管理系统'

# 页脚版权信息

site_footer = 'Copyright © 2018 我的巴士'

xadmin.site.register(CommAdminView, GlobalSetting)

  

  如果以后左侧边栏的项目越来越多,最好有个分类,也方便管理和操作。这个需要在GlobalSetting类中添加

  

  好了,结束了,Xadmin入口到此结束

  转载原文:

  内容仿照这位博主学习,感谢这位博主

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线