Django2.0+xadmin入门教程之学生信息管理系统(下)

上一篇我们已经初步的构建起了一个学生管理系统的模型,现在接着来继续完善它吧。


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)筛选

今年学校的录取率爆满,生源特别好,要在一个数据库中找到对应的学生,必然需要用到搜索功能。

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

search_fields = ('name',)

要是我们想通过班级或者学科来查找这个班级或者选修这门学科的所有学生,方法还会是一样的吗?我们先试试:

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

这是怎么回事呢?原来,我们搜的“班级”和“学科”这两个字段一个是外键一个是含有多对多关系,Student模型中的这两个字段名称并不是其实际名称,要在字段后加“__”两个下划线,然后再添加外键或多对多关系实际的字段名:

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

现在妥妥的了。

 

2)过滤:

如果只想查看学生表中的男生或者女生的信息,那就用到了过滤功能:

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

list_filter = ('sex',)

3)排序:

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

# 顺序排序
ordering = ('age','name')
    
#逆序排序,在前面加一个减号“-”, 例如按年龄倒序排序
ordering = ('-age',)

这表示同时按照年龄和姓名字段来排序。

 

二、定制网站信息

我们希望登录网站的时候,显示站点的名称,修改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入门就到此为止

 

 

转载原文:https://www.cnblogs.com/v88v/p/8909845.html

内容是照着这位博主学习仿照而来的,感谢这位博主

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Python Django的大学生就业信息管理系统设计。该系统旨在帮助大学就业服务部门更高效地管理大学生的就业信息,提供完善的就业服务和支持。 系统包括以下模块: 1. 用户管理:系统管理员可以管理用户,包括学生、教职员工和企业用户。系统会根据用户角色权限不同,提供相应的功能和页面。 2. 学生信息管理学生用户可以在系统中填写、更新和维护个人信息,包括基本信息、教育背景、实习经历、奖励和证书等。管理员可以审核和管理学生信息。 3. 就业招聘信息发布和管理:企业用户可以在系统中发布招聘信息,包括职位描述、要求、薪资待遇等。学生用户可以浏览和筛选招聘信息,选择投递简历。 4. 实习和工作申请管理:学生用户可以在系统中查看和申请实习和工作机会。管理员可以审核和管理申请,提供反馈和沟通平台。 5. 就业服务资源管理:管理员可以管理就业服务资源,包括就业指导资料、求职技巧、面试经验等。学生用户可以浏览、下载和分享资源。 6. 统计和报表分析:系统可以统计和分析就业数据,生成报表和图表,帮助管理员了解就业状况和趋势,提供决策支持。 7. 消息通知和提醒:系统可以通过邮件、短信等方式向用户发送消息通知和提醒,包括招聘信息更新、申请状态变更等。 通过基于Python Django的开发,大学生就业信息管理系统可以实现良好的可扩展性和稳定性,同时提供友好的用户界面和多样化的功能,方便学生管理员使用。系统将有效地提高大学就业服务工作的效率和质量,为大学生提供更好的就业支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值