Django模型中类似涂鸦的功能?
我想允许用户在一周的7天中的任何一天提供三个时间段的可用性 要做到这一点,蛮力方法是只提供21个复选框,所以Django模型中类似涂鸦的功能?,django,Django,我想允许用户在一周的7天中的任何一天提供三个时间段的可用性 要做到这一点,蛮力方法是只提供21个复选框,所以 MONDAY_AM = models.BooleanField() MONDAY_NOON = models.BooleanField() ... SUNDAY_PM = models.BooleanField() 然而,这似乎很愚蠢。如果我想回忆所有的星期一,或者所有的晚上呢?它只是看起来不能很好地扩展 我想要一个更复杂的方法,理想的方法是允许我将这些模型注册到Django的管理员,
MONDAY_AM = models.BooleanField()
MONDAY_NOON = models.BooleanField()
...
SUNDAY_PM = models.BooleanField()
然而,这似乎很愚蠢。如果我想回忆所有的星期一,或者所有的晚上呢?它只是看起来不能很好地扩展
我想要一个更复杂的方法,理想的方法是允许我将这些模型注册到Django的管理员,这样我就可以在表格中看到每个用户的可用性,比如
|Mo Tu We Th Fr Sa Su
AM | x x
NOON | x x x x
PM | x x x
任何帮助都将不胜感激(是的,到目前为止,Doodle的功能远远超过了我的东西,但1.这是一个学习项目,2.我计划朝着不同的方向发展)
编辑:顺便说一句,来自Python、Qt等等,我最初的方法是嵌套循环和字典,但South和Django似乎不喜欢这样。我需要更多地考虑“数据库式”,所以不要害怕提交一些几乎微不足道的东西。这可能是我真正需要的。过去我也需要这个功能。其中,
Teacher
必须定义其在任何一天的可用时间,因此我提出了以下模型:
class Availability(models.Model):
WEEKDAY_CHOICES = (
(0, 'Monday'),
(1, 'Tuesday'),
(2, 'Wednesday'),
(3, 'Thursday'),
(4, 'Friday'),
(5, 'Saturday'),
(6, 'Sunday'),
)
id = models.AutoField(primary_key=True)
teacher = models.ForeignKey(Teacher)
weekday = models.PositiveSmallIntegerField(choices=WEEKDAY_CHOICES)
start_time = models.TimeField(null=True, blank=True)
end_time = models.TimeField(null=True, blank=True)
class Meta:
db_table = 'availability'
unique_together = ("teacher", "weekday")
我希望这能帮助你取得成功。你为什么有一条“AutoField”线路?其余的都是非常好和直接的。谢谢是,您可以排除
自动字段
行。谢谢