当前位置: 首页 > news >正文

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_listcontext_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_namereturn 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.POSTitem_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,登录用户后,点击查看兑换物品列表页面

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

 -------------------------------------------------end -------------------------------------------------

http://www.lryc.cn/news/213407.html

相关文章:

  • jmeter和postman你选哪个做接口测试?
  • mac版本 Adobe总是弹窗提示验证问题如何解决
  • 钡铼技术ARM工控机在机器人控制领域的应用
  • HTML+CSS+JS实现计算器
  • Git工作原理和常见问题处理方案
  • C++-实现一个简单的菜单程序
  • Git更新 fork 的仓库
  • chorme安装esay scholar及chrome 无法从该网站添加应用、扩展程序和用户脚本解决方案
  • 数据库-扩展语句,约束方式
  • 精密数据工匠:探索 Netty ChannelHandler 的奥秘
  • Python四种基本结构的操作
  • Eureka:com.netflix.discovery.TimedSupervisorTask - task supervisor timed out
  • 1.spark standalone环境安装
  • 【问题解决】 avue dicUrl 动态参数加载字典数据(已解决)
  • ​学习一下,什么是预包装食品?​
  • 从零开始学习搭建量化平台笔记
  • 【whisper】在python中调用whisper提取字幕或翻译字幕到文本
  • git diff对比差异时指定或排除特定的文件和目录
  • 数据结构介绍与时间、空间复杂度
  • (c语言进阶)字符串函数、字符分类函数和字符转换函数
  • 解决MySQL大版本升级导致.Net(C#)程序连接报错问题
  • Java 将对象List转为csv文件并上传远程文件服务器实现方案
  • 分享8个分布式Kafka的使用场景
  • 【再见了暗恋对象 朋友们看完之后的一些感悟】
  • JSON和Protobuf序列化
  • lambda表达式 - c++11
  • 509. 斐波那契数
  • 四、[mysql]索引优化-1
  • PyTorch入门学习(九):神经网络-最大池化使用
  • 0基础学习PyFlink——用户自定义函数之UDF