IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django - 边学Django边写毕业设计(day15 作业发布及相关数据处理) -> 正文阅读

[Python知识库]Django - 边学Django边写毕业设计(day15 作业发布及相关数据处理)

2021.10.8

昨天没什么时间专心写,就构思了一下,补充了需求分析。

1.作业发布 - 表单和数据库

  1. 先创建一个作业模型类

菜鸟问题再次暴露。
竟然在创建表也出了问题:生成迁移文件并迁移后,觉得不满意,把新的迁移文件和数据库表删了,改完后重新生成迁移文件,执行迁移命令时,却说没有迁移文件可用。
在这里插入图片描述
百度了一下,原来生成迁移真正对比的也在数据库中存着。
在这里插入图片描述
里面有我前面迁移的记录,因为表名、文件名一样所以迁移时找不到新的迁移文件。

所以解决办法是:删掉django_migrations里上一条创建的数据。

  1. 记住这个前端报错,遇到两次了
    Uncaught SyntaxError: Invalid regular expression flags,都是ajax里的url用了反向生成url忘了加引号 ‘’

  2. Form中choicefield下拉菜单选取数据库内容,参考以下链接
    参考

即在实例化Form的时候给字段加上choices参数

form = CreateJobForm(request.POST)
form.fields['user_id'].choices = choice
  1. 外键在表单里要用 关联外键_id 例如user外键,如果字段直接用user,会报 应该传一个user实例 的错,所以我后来改成了user_id,因为确实是这样,我的select的value是int类型。
  2. 还有如果用上面加入选项的方式,GET中加了,POST也要加,不然就写进__init__里,每次实例化会一起生成。
  3. clean_字段 这个方法不仅可以用来检验数据,还可以用来对数据进行处理
  4. 在表单form.save()时候,将没出现在表单中但模型类有的数据用instance补上,项目id
form.instance.project_id=project_id

和用户id,(发现)这边用户id虽然有选择,但是如果没有补上,它保存是空的,(在模型类中我允许它为空),不知道是因为我设置了它可以为空才会这样还是因为外键都不自动保存,这是一个疑点,如果有大佬看到这可以指点指点吗。
虽然这样刚好可以符合我有允许为空的设计。所以我加了个判断。如果为空传过来的value是0,如果不是0我就补上user_id,如果为0,直接跳过,也就是空了。

2.作业发布 - 功能部分

  1. 添加了任务是否收到字段。将一些判断将按钮显示区分开。

如果作业没有指派给谁,就显示为待领任务,如果有,就显示指派任务。

待领任务,领取按钮,不是发布者才显示。
指派任务,收到按钮,只有被指派者才显示。

点击领取按钮,将user_id添加,并把是否收到字段置True,不再显示。
点击收到按钮,把是否收到字段置True,不再显示。

  1. 刚才在弄这两个按钮的重定向时,我直接return redirect(request.path_info),想要返回当前页,结果网页显示“此网页包含过多重定向”

原因是:领取或收到的按钮,都分别新创建了一个url处理,从a标签跳转过来,现在的path_info已经变成了处理按钮的路由了,又redirect到这个路由,又处理按钮的视图函数,又redirect所以就会导致死循环,从而出现“此网页包含过多重定向”的问题。

  1. 在访问项目视图函数中添加了限制,若不是这个项目的参与者和创建者,都无法访问,重定向回管理中心。
  2. 如果踢出成员,之前只做了删除对应的项目成员数据和项目人数-1,这边补上,还要再删除成员与该项目有关的消息,只留下被踢出的消息,因为只要有消息没忽略就无法重新邀请。
  3. 还有踢出成员,应该要把未完成的项目释放到发布情况中,所以还要一列是否完成列。

今天就写到这吧,添加了是否完成列,明天写释放未完成任务。

美化一下界面,将参与者弄成表格形式展示。今天是与问题做斗争的一天。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:14:15  更:2021-10-09 16:15:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:43:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码