【发布时间】:2019-12-09 18:34:48
【问题描述】:
我是 Django 新手,正在 Django 中进行我的第一个项目。我为我的应用程序提供了一个更简单的示例,其中 - 我的应用程序有 3 种不同类型的用户。
- 教师助理 - 根据一天的日程安排/计划教师的时间表和课程
- 教师 - 批准议程上的项目并标记日程中的项目是否完成
- 学生 - 查看个别教师的日程安排
目前,我已准备好具有所有功能的整个应用程序,助手将根据她的课程和议程为老师创建时间表/时间表(即添加/编辑/删除作为主题的各种模型对象)为班级。
目前,当助手对计划进行更改(例如删除或编辑现有模型对象)时,这些更改会直接更新模型对象。
我想要实现的是,只有当助手发布时间表时,老师才能批准,学生应该能够查看它,并且助手应该有自己的时间表版本,他可以进行更改和对其进行编辑(除非已发布,否则其他两个角色不应查看这些更改和编辑)。 目前,助手所做的所有更改都直接在模型对象中更新,并在教师和学生的页面上呈现。我只有一个模型类用于存储有关正在计划的项目的信息。
我该如何设计这个?任何建议/文档或一段代码都会有帮助。
提前致谢!
编辑 1: 我想到的唯一解决方案是当助手点击发布按钮时,存储模型对象的副本并将此副本呈现到其他用户的页面上?但是我该如何在 Django 中编写呢?
【问题讨论】:
-
一种选择可能是制作两个独立的模型 -
AssistantSchedule和TeacherSchedule具有相似的结构 -
如果我很好地理解了您的问题,您可以在日程表模型中使用
boolean字段publish,这可能会根据您的使用情况获得批准,并仅过滤您的日程表中包含publish=True的日程表向学生展示时的观看次数。 -
@Abhyudai 是的,这实际上是有道理的,我试图想出一种优雅的方法来避免重复相同的模型。我将尝试快速实现这一点,看看它是否有效。非常感谢!
-
谢谢,@bhaskarc 我正在寻找一种方法来消除大量重复
-
是的 LinkedIn 会很棒 www.linkedin.com/in/krushika29 我们可以在这里联系@Abhyudai
标签: django django-models django-orm