我有一个模型,将重复的训练存储在我的健身房中。
DAYS_OF_WEEK = (
(0, _("Monday")),
(1, _("Tuesday")),
(2, _("Wednesday")),
(3, _("Thursday")),
(4, _("Friday")),
(5, _("Saturday")),
(6, _("Sunday")),
)
class RecurringSession(models.Model):
session = models.ForeignKey(SessionType, db_index=True, on_delete=models.CASCADE)
dayofweek = models.PositiveSmallIntegerField(choices=DAYS_OF_WEEK)
time = models.TimeField()
然而,有些课程每周不止一次。在该模型字段上存储多个值(1 到 7 之间)的最佳方法是什么?
我正在使用 Django Mysql 8.0,据我了解它支持 JSON 字段,但从 django 文档来看,到目前为止似乎只有 Postgres 支持。
有特定的 django 方法来做到这一点吗?也许存储一个带有逗号分隔值的 charfield ?
我不需要按该字段进行搜索。
每周都会有一个 cronjob 读取此模型并在另一个模型上创建每个会话的实例。
(我需要每个会话作为定制实例:教师替换、会话名册、会话状态 - 我可能会在银行假日或其他原因取消单个会话)。
所以这个“RecurringSessions”将是我存储每周生成的会话信息的地方。
我最初写的方式是,同一会话的一周中的每一天都会有一个模型实例,但我想将它们分组在同一个实例中,因为我认为它看起来更好,并且可能更容易将老师设置为大部分。
或者,我可以为每个会话存储一个带有多个日期/时间值的字典的 json,但这会使确保 cronjob 运行两次时类不会重复变得更加困难。
现在,为了避免这种情况,我的日程模型中有一个 UniqueConstraint,其中包含“天”、“时间”和“房间”字段
使用 Django 3.0.6、Python 3.8.2 和 MySQL 8.0.20。
thanks