也許這樣的事情可以工作:
class Appointment(models.Model):
day = models.DateField()
available = models.BooleanField(default=True)
classroom = models.ManyToManyField(Classroom, related_name='appointments')
編輯:
情況應該是相當放置在教室和任命和ManyToManyField之間的中間表應該有through=tablename
其中tablename是這個名字表。
編輯:
其實我想有一個夜宵,但這個問題現在比我的胃口:)
class Classroom(models.Model):
name = CharField(max_length=128)
class WeekendDay(models.MOdel): # this was before Appointment
day = models.DateField()
classroom = models.ManyToManyField(Classroom, through="Appointment")
class Appointment(models.Model)
available = models.BooleanField(default=True)
weekend_day = models.ForeignKey(WeekendDay, related_name='appointments_per_day')
classroom = models.ForeignKey(Classroom, related_name='appointments_per_classroom')
更重要的我覺得這樣的事情應該工作,如果你有很多教室,這在很多天都可用。通過available
字段,您可以查看或設置可用性。如果一個教室被預訂,讓我們在下週六說,那麼它的值應該設置爲False
。這應該是基本的骨架,你可以根據你的需要擴展模型。
等等,有了這個M2M領域,我不得不在一年的所有周末期間(一年52個週末,所以在約會時約104個條目)填寫約會。我對嗎?這是你的第一個解決方案...現在我正在看第二個 – 2014-09-25 17:53:20
第二次編輯後的模型很重要。這應該工作。您可以在所有星期六和星期日填寫WeekendDay,還可以使用ChoiceField擴展模型(選項爲「星期六」,「星期天」),因此它比用戶更友好,比擁有日期更好。在中間表中,您將結合預約(教室+週末日)。 – cezar 2014-09-25 18:43:29
太棒了。寶貴的信息。也看起來與這裏的什麼是相似的:https://docs.djangoproject.com/en/1.6/topics/db/models/#extra-fields-on-many-to-many-relationships – 2014-09-25 21:37:11