体育の授業を予約するためのWebアプリケーションをdjangoで設計したいと思います。このような問題が通常どのように解決されるかわからないため、設計に問題があります。
そのため、ジムのクラスは週に 1 回、月曜の 19 時に開催され、20 人しか参加できません。予約は 1 週間前から可能ですので、5 月 28 日の 19.00 にクラスが開催される場合、5 月 21 日 00:00 から予約が可能になります。
1. 1 つのクラスは、モデル内の 1 つのオブジェクト (1 つのレコード) である必要があります
。
しかし、それが 1 種類のクラス (つまり、毎週月曜日に行われるクラスが 1 つのレコード) または特定の日付に発生するクラス (つまり、1 週間に 1 つのクラスが 1 つのレコードであり、3 週間後には、このクラスの 3 つのレコードがある) である必要があります。 ?
2. これらの記録を作成する方法は? 日付を+1週間に変更して、今日のクラスの自動コピーを作成する必要がありますか? これらの問題を解決するには?
1 に答える
1
体育の授業の現在の時間割 (スケジュール) を表すモデルと、ある日の特定の記録を表す別のモデルを作成できます。
たとえば、次のようになります。
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
そのため、将来変更される場合は、スケジュールとクラスの種類を指定できます。次の週の ClassRecord を作成するコマンドを作成し (django ドキュメントの manage.py コマンドを参照)、このコマンドを cron (またはセロリなど) に設定すると、週に 1 回実行され、必要に応じて新しいレコードが作成されます。 .
于 2012-07-20T08:28:34.870 に答える