【问题标题】:Django and designing application with gym classesDjango 和设计带有体育课的应用程序
【发布时间】:2012-06-02 15:39:27
【问题描述】:

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

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

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

【问题讨论】:

  • 这个范围很广。您本质上是在寻求有关如何设计 Web 应用程序的指导。根据您的第一个问题,您似乎对面向对象编程也完全陌生。我建议你首先完成一个 django 教程,设计一个至少包含基本图表和描述的设计,然后把它放在你的博客上,并在 django-users 邮件列表中寻求一些反馈。跨度>

标签: python database django database-design web-applications


【解决方案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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 2012-10-10
    相关资源
    最近更新 更多