Django实战项目-学习任务系统-兑换物品管理

这篇具有很好参考价值的文章主要介绍了Django实战项目-学习任务系统-兑换物品管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接着上期代码框架,开发第5个功能,兑换物品管理,再增加一个学习兑换物品表,主要用来维护兑换物品,所需积分,物品状态等信息,还有一个积分流水表,完成任务奖励积分,兑换物品消耗积分。

要想激励一个人的学习动力,最好能有实际的奖励,完成任务后,系统应给予一定的奖励,如积分或实际物品等。

目前系统考虑使用积分奖励,然后这些积分积累多了就可以兑换实际物品,这些奖励可以激励用户持续学习。

第一步:编写第5个功能-兑换物品管理

1,编辑模型文件:

./mysite/study_system/models.py:

# 更多代码内容请关注weixin公众号: PandaCode辉


2,编辑urls配置文件:
./mysite/study_system/urls.py

# 更多代码内容请关注weixin公众号: PandaCode辉


3,编辑视图文件:
./mysite/study_system/views.py

def getExchangeItemList(request):
    '''
    @方法名称: 获取兑换物品列表
    @作    者: PandaCode辉
    @weixin公众号: PandaCode辉
    @创建时间: 2023-10-10
    '''
    # 响应容器
    rsp_dict = {}
    # 获取当前用户名
    username = request.session.get('username')
    # 根据用户名获取用户对象
    cur_user = StudyUser.objects.get(username=username)
    print('根据用户名查询用户对象:' + str(cur_user))

    user_list = [cur_user]
    # 如果当前用户是:3-学生,则查找对应辅导员用户
    if cur_user.role == 3:
        parent_id = cur_user.parent_id
        # 根据用户ID获取用户对象
        parent_user = StudyUser.objects.get(user_id=parent_id)
        print('根据用户ID获取用户对象:' + str(parent_user))
        user_list = [cur_user, parent_user]
    # 获取待完成任务列表,限制发布人
    data_list = StudyExchangeItem.objects.filter(created_by__in=user_list).order_by('-pk')
    
    rsp_dict['data_list'] = data_list

    context_object_name = "exchange_item_list"
    template_name = "study_system/home.html"
    rsp_dict['html_file'] = 'study_system/item/exchangeItemList.html'
    rsp_dict['context_object_name'] = context_object_name

    return render(request, template_name, rsp_dict)


def toNewExchangeItem(request):
    '''
    @方法名称: 跳转到新增兑换物品视图
    @作    者: PandaCode辉
    @weixin公众号: PandaCode辉
    @创建时间: 2023-10-10
    '''
    rsp_dict = {}
    rsp_dict["pageTitle"] = "新增兑换物品"
    rsp_dict['html_file'] = 'study_system/item/addExchangeItem.html'

    return render(request, "study_system/home.html", rsp_dict)


def addExchangeItem(request):
    '''
    @方法名称: ajax请求, 表单视图,新增兑换物品
    @作    者: PandaCode辉
    @weixin公众号: PandaCode辉
    @创建时间: 2023-10-10
    '''
    # 初始化响应容器
    rsp_dict = {"result": "error", "errorMsg": "系统错误"}
    # 是否ajax请求
    if request.is_ajax():
        try:
            rest = request.POST
            item_name = rest['itemName']
            item_points = int(rest['itemPoints'])
            item_description = rest['itemDescription']
            item_status = rest['itemStatus']
            # 获取当前用户名
            username = request.session.get('username')
            # 根据用户名获取用户对象
            cur_user = StudyUser.objects.get(username=username)
            print('根据用户名查询用户对象:' + str(cur_user))
            # 创建者ID,使用 StudyUser 对象赋值
            created_by = cur_user

            # 今天
            # UTC格式当前时区时间
            t = time.localtime()
            work_date = time.strftime("%Y-%m-%d %H:%M:%S", t)
            print('当前日期时间:' + str(work_date))

            # 创建对象并保存到数据库
            studyExchangeItem = StudyExchangeItem(item_name=item_name, item_points=item_points,
                                                  item_description=item_description, item_status=item_status,
                                                  created_time=work_date, update_time=work_date,
                                                  created_by=created_by)
            # 保存到数据库是否成功
            studyExchangeItem.save()
            rsp_dict["result"] = "success"
        except Exception as e:
            rsp_dict["errorMsg"] = "新增兑换物品保存到数据库失败."

    # 成功与否都返回json数据格式
    return JsonResponse(rsp_dict)

兑换物品视图,更新物品状态,同时添加消耗积分流水。

# 更多代码内容请关注weixin公众号: PandaCode辉

4,编辑页面模板代码:

4.1. 兑换物品列表页面
./mysite/study_system/templates/study_system/item/exchangeItemList.html

# 更多代码内容请关注weixin公众号: PandaCode辉


4.2. 新增兑换物品页面
./mysite/study_system/templates/study_system/item/addExchangeItem.html

# 更多代码内容请关注weixin公众号: PandaCode辉


第二步:运行测试-兑换物品管理功能

1,登录用户后,点击查看兑换物品列表页面

Django实战项目-学习任务系统-兑换物品管理,Python,django,python

Django实战项目-学习任务系统-兑换物品管理,Python,django,python

 点击可兑换物品,如果用户积分充足,则兑换成功,更新物品状态。

Django实战项目-学习任务系统-兑换物品管理,Python,django,python

Django实战项目-学习任务系统-兑换物品管理,Python,django,python

 -------------------------------------------------end -------------------------------------------------文章来源地址https://www.toymoban.com/news/detail-737862.html

到了这里,关于Django实战项目-学习任务系统-兑换物品管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django实战项目-学习任务系统-自定义URL拦截器

    接着上期代码框架,6个主要功能基本实现,剩下的就是细节点的完善优化了。 首先增加URL拦截器,你不会希望没有登录用户就可以进入用户主页各种功能的,所以增加URL拦截器可以解决这个问题。 Django框架本身也有URL拦截器,但是因为本系统用户模型跟Django框架本身用户模

    2024年02月06日
    浏览(40)
  • 【Linux操作系统】探秘Linux奥秘:进程与任务管理的解密与实战

    🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《操作系统实验室》 🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。 目录 🪐1 初识Linux OS 🪐2 进程与任务管理的解密与实战 🌍1. 实验目的 🌍2. 实验准备 🌍3. 实验内容 🌍4. 实验心得 📝

    2024年02月03日
    浏览(49)
  • 【智能家居项目】FreeRTOS版本——多任务系统中使用DHT11 | 获取SNTP服务器时间 | 重新设计功能框架

    🐱作者:一只大喵咪1201 🐱专栏:《智能家居项目》 🔥格言: 你只管努力,剩下的交给时间! 在上篇文章中,本喵仅进行了单任务的DHT11温湿度传感器使用,相当于裸机使用。 根据上面时序图计算接收一次数据(5个字节)的耗时,不考虑主机发送起始信号的耗时: 最小时间

    2024年02月05日
    浏览(44)
  • 项目管理平台-01-jira 入门介绍 缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业性应用软件

    Devops-01-devops 是什么? Devops-02-Jpom 简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件 代码质量管理 SonarQube-01-入门介绍 项目管理平台-01-jira 入门介绍 缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业性应用软件 项目管理平台-01-Phabricator 入门介

    2024年03月21日
    浏览(51)
  • 基于大规模测量和多任务深度学习的电子鼻系统目标识别、浓度预测和状态判断

    为了实现响应特征的自动提取,简化模型的训练和应用过程,设计了一种双块知识共享结构的多任务卷积神经网络(MTL-CNN)来训练E-nose系统的模型。该模型可以同时执行三种不同的分类任务,用于目标识别、浓度预测和状态判断。 使用值为RA/RG (RA在空气中的电阻值,RG为在目

    2024年02月09日
    浏览(37)
  • Django实战:部署项目 【资产管理系统】,Django完整项目学习研究(项目全解析,部署教程,非常详细)

    关于Django,我已经和大家分享了一些知识,考虑到一些伙伴需要在实际的项目中去理解。所以我上传了一套Django的项目学习源码,已经和本文章进行了绑定。大家可以自行下载学习,考虑到一些伙伴是初学者,几年前,编者也是从初学者一路学习到现在。当时,很希望有一套

    2024年02月20日
    浏览(39)
  • 复习之系统定时任务及延迟任务

    at  +时间 :具体时间设定延迟任务 设定成功后“ ctrl + d \\\"发起任务,\\\" ctrl + c \\\" 取消。 at  -l  :查看延迟任务 at  -c  1 :查看序号为1 的延迟任务的内容 at  -r  1 :取消序号为1 的延迟任务 at  now+1min : 设定1分钟后的延迟任务 ------------------------------------------------------实验-

    2024年02月16日
    浏览(39)
  • 【小黑嵌入式系统第十一课】μC/OS-III程序设计基础(一)——任务设计、任务管理(创建&基本状态&内部任务)、任务调度、系统函数

    上一课: 【小黑嵌入式系统第十课】μC/OS-III概况——实时操作系统的特点、基本概念(内核任务中断)、与硬件的关系实现 下一课: 【小黑嵌入式系统第十二课】μC/OS-III程序设计基础(二)——系统函数使用场合、时间管理、临界区管理、使用规则、互斥信号量 1.1 任务概

    2024年02月04日
    浏览(44)
  • 任务40 评奖系统设计

    任务40 评奖系统设计 为教务处设计一个学生评价老师的程序: 每位学生投一张票,选出自己最喜爱的老师,选票格式为: | 第一喜爱的老师 | 第二喜爱的老师 |第三喜爱的老师 | | 工号 |工号 |工号 | 上述数据存放在一个数据文件中。 根据票中情况给老师记分,记分规则为:

    2024年02月07日
    浏览(34)
  • 分布式任务调度系统分析

    首先,我们来思考一些几个业务场景: XX 信用卡中心,每月 28 日凌晨 1:00 到 3:00 需要完成全网用户当月的费用清单的生成 XX 电商平台,需要每天上午 9:00 开始向会员推送送优惠券使用提醒 XX 公司,需要定时执行 Python 脚本,清理掉某文件服务系统中无效的 tmp 文件 最开始,

    2023年04月22日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包