Django-保存对模型对象所做的更改并在发布时进行渲染

时间:2019-12-09 18:34:48

标签: django django-models django-orm

我是Django的新手,正在Django中从事我的第一个项目。我为我的应用程序提供了一个更简单的示例,其中- 我有3种不同类型的应用程序用户。

  1. 教师助理-根据当天的日程安排/计划教师的时间表和课程
  2. 老师-批准议程中的项目并标记时间表中的项目是否完成
  3. 学生-查看单个教师的时间表

目前,我已经准备好了整个应用程序及其所有功能,助手将根据老师的课程和日程安排时间表/时间表(即添加/编辑/删除属于主题的各种模型对象)上课

当前,当助手对计划进行更改(例如删除或编辑现有模型对象)时,这些更改将直接更新模型对象。

我要实现的是,只有当助手发布时间表后,老师才能批准并且学生应该可以查看时间表,并且助手应该拥有自己的时间表版本,以便他可以进行更改和对其进行编辑(除非已发布,否则其他两个角色不应查看这些更改和编辑)。 当前,助手所做的所有更改都将在模型对象中直接更新,并且这些更改将呈现在“教师”和“学生”的页面上。我只有一个模型类,用于存储有关计划中的项目的信息。

我该如何设计?任何建议/文档或代码段都将真正有帮助。

谢谢!

编辑1: 我想到的唯一解决方案是,当Assistant按下“发布”按钮,存储模型对象的副本并将该副本呈现到其他用户的页面上时?但是我怎么用Django写这个呢?

1 个答案:

答案 0 :(得分:1)

在模型中添加两​​个额外的变量(created_at和publish_flag)。在视图中,您将发送publish_tag = true和最新的created_at。