python - Django 和体育类(class)设计应用程序

标签 python database django database-design web-applications

我想在 Django 中设计 Web 应用程序来预订体育课。我在设计它时遇到了一些问题,因为我不知道这些问题通常是如何解决的。

所以每周上一次体育课,f.e.星期一 19:00,只有 20 人可以参加。应该可以在一周前预订,所以如果类(class)在 5 月 28 日 19:00 开始,则应该可以从 5 月 21 日 00:00 开始预订。

现在有一些问题:
1.一个类应该是一个模型中的一个对象(一条记录),对吧?但是它应该是一种类(所以每个星期一发生的类是一个记录)还是在特定日期发生的类(所以一周一节课是一个记录,3周后,我们有这个类的3条记录) ?
2.如何创建这些记录?我应该自动复制今天的类(class),将日期更改为 +1 周吗? 如何解决这些问题?

最佳答案

好吧,你可以创建,f.e.一个模型代表体育课的当前时间表(时间表),另一个模型代表某天的特定记录。

例如:

class ClassType(models.Model):
    name = models.CharField(u"Class name", max_length = 120)
    schedule_day = models.IntegerField(u"Day of week")
    schedule_time = models.TimeField(u"Time")
    max_attend = models.IntegerField(u"Maximum attendants")

class ClassRecord(models.Model):
    type = models.ForeignKey(ClassType, verbose_name = "Class type")
    date = models.DateTime("Scheduled date")
    attendants = models.ManyToManyField(User) #don't forget to import it

因此,您可以指定时间表和类(class)类型(如果它们将来会发生变化)。您可以创建一个命令(请参阅 django 文档中的 manage.py 命令),它将在下周创建一个 ClassRecord 并在 cron(或 celery 例如)上设置此命令,因此它将每周运行一次并在需要时创建新记录.

关于python - Django 和体育类(class)设计应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10781796/

相关文章:

python - 如何在 Selenium WebDriver 中设置浏览器宽度和高度?

python - 将 4D float 组从 txt(字符串)文件转换为 numpy float 组

python - 如何使用 python 在单个 session 中执行多个命令的子进程中使用变量

python - GAE Python 中用于调试选项和日志记录的全局变量

javascript - "Azure Mobile Services"和 "Azure App Service"之间的不同 sql 结果

java - 从数据库获取联系人时出错

mysql - 如何从 mysqldump 添加特定数据库

django - ModelSerializer 在 Django REST 框架中非常慢

python - 如何在 Django 中将 html 页面转换为 pdf

django - 有没有一种方法可以根据字符串相似性(Django difflib)来过滤Django查询集?