【问题标题】:Django - save changes made to model objects and render when publishedDjango - 保存对模型对象所做的更改并在发布时呈现
【发布时间】:2019-12-09 18:34:48
【问题描述】:

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

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

目前,我已准备好具有所有功能的整个应用程序,助手将根据她的课程和议程为老师创建时间表/时间表(即添加/编辑/删除作为主题的各种模型对象)为班级。

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

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

我该如何设计这个?任何建议/文档或一段代码都会有帮助。

提前致谢!

编辑 1: 我想到的唯一解决方案是当助手点击发布按钮时,存储模型对象的副本并将此副本呈现到其他用户的页面上?但是我该如何在 Django 中编写呢?

【问题讨论】:

  • 一种选择可能是制作两个独立的模型 -AssistantScheduleTeacherSchedule 具有相似的结构
  • 如果我很好地理解了您的问题,您可以在日程表模型中使用boolean 字段publish,这可能会根据您的使用情况获得批准,并仅过滤您的日程表中包含publish=True 的日程表向学生展示时的观看次数。
  • @Abhyudai 是的,这实际上是有道理的,我试图想出一种优雅的方法来避免重复相同的模型。我将尝试快速实现这一点,看看它是否有效。非常感谢!
  • 谢谢,@bhaskarc 我正在寻找一种方法来消除大量重复
  • 是的 LinkedIn 会很棒 www.linkedin.com/in/krushika29 我们可以在这里联系@Abhyudai

标签: django django-models django-orm


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-03-24
    • 2014-08-05
    • 1970-01-01
    • 2015-09-08
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2015-12-02
    相关资源
    最近更新 更多