Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django模型中类似涂鸦的功能?_Django - Fatal编程技术网

Django模型中类似涂鸦的功能?

Django模型中类似涂鸦的功能?,django,Django,我想允许用户在一周的7天中的任何一天提供三个时间段的可用性 要做到这一点,蛮力方法是只提供21个复选框,所以 MONDAY_AM = models.BooleanField() MONDAY_NOON = models.BooleanField() ... SUNDAY_PM = models.BooleanField() 然而,这似乎很愚蠢。如果我想回忆所有的星期一,或者所有的晚上呢?它只是看起来不能很好地扩展 我想要一个更复杂的方法,理想的方法是允许我将这些模型注册到Django的管理员,

我想允许用户在一周的7天中的任何一天提供三个时间段的可用性

要做到这一点,蛮力方法是只提供21个复选框,所以

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”线路?其余的都是非常好和直接的。谢谢是,您可以排除
自动字段
行。谢谢