【发布时间】:2019-03-18 23:05:03
【问题描述】:
我正在为每个房间构建一个学校时间表应用程序?有我的模型。我有什么遗漏的吗?
class Building(models.Model):
bid = models.CharField(max_length=10, primary_key=True)
name = models.CharField(max_length=255, unique=True)
class Meta:
ordering = ['bid']
def __str__(self):
return f'{self.bid}'
class Room(models.Model):
building = models.ForeignKey(Building, on_delete=models.CASCADE,
related_name='rooms')
number = models.PositiveIntegerField()
availability = models.BooleanField(default=False)
power = models.BooleanField(default=False)
class Meta:
ordering = ['building', 'number']
unique_together = ['building', 'number']
def __str__(self):
return f'{self.building.bid}/{self.number}'
class Occurrence(models.Model):
date = models.DateField('Date')
start_period = models.ForeignKey(Period, on_delete=models.CASCADE, related_name='start_at')
end_period = models.ForeignKey(Period, on_delete=models.CASCADE, related_name='end_at')
class Meta:
abstract = True
class Period(models.Model):
start = models.TimeField()
end = models.TimeField()
objects = PeriodManager()
class Meta:
ordering = ['start']
def __str__(self):
return f'{self.start}-{self.end}'
def check_time(self):
return True if self.start < self.end else False
def check_overlap(self):
pass
class TimetableModel(models.Model):
class Meta:
abstract =True
将有一个模型名称 Booking,它从 Occurrence 延伸,以允许学生注册以分期使用房间。我想将时间表模型链接到房间模型,以提供上下文以呈现类似于学校时期的房间和时期模型的不同周时间表。有什么建议吗?
【问题讨论】:
-
您面临什么问题或问题?只是要求我们审查您的模型并提供建议并不是 SO 的目的,并且会使您的问题过于模糊。请查看How to Ask 上的指南。
-
我想将时间表模型链接到房间模型,以提供上下文以呈现房间的不同周时间表。
标签: django database django-models database-design django-orm