Django表格的复选框

时间:2016-07-10 07:33:10

标签: python django django-forms

我正在尝试创建一个表调度程序,人们可以在这里选择他们自由的时间段。我正在使用django和postgresql数据库。我有以下型号:

class Person(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, unique=True)
    name = models.CharField(max_length=100)
    monday = models.mulitpleChoiceField(choices= ["12-1", "1-2", "2-3"])
    tuesday = models.mulitpleChoiceField(choices= ["12-1", "1-2", "2-3"])
    wednesday = models.mulitpleChoiceField(choices= ["12-1", "1-2", "2-3"])
    thursday = models.mulitpleChoiceField(choices= ["12-1", "1-2", "2-3"])
    friday = models.mulitpleChoiceField(choices= ["12-1", "1-2", "2-3"])
    saturday = models.mulitpleChoiceField(choices= ["12-1", "1-2", "2-3"])
    sunday = models.mulitpleChoiceField(choices= ["12-1", "1-2", "2-3"])

问题是如何使用modelForm创建一个表格,该表格将为我提供一个表格,其中rows = days和columns = timeslots,用户只需选中一个复选框即可指示它们何时空闲。

目前我的forms.py看起来像这样:

class UserForm(forms.ModelForm):
    class Meta:
        model = Person
        fields = [
            "name",
            "monday",
            "tuesday",
            "wednesday",
            "thursday",
            "friday",
            "saturday",
            "sunday",
        ]

我还是django的新手,一个月前才拿起它。感谢您给出的任何建议。

1 个答案:

答案 0 :(得分:0)

我只需使用两个datetime fields并使用javascript在前端使用插槽渲染表格。您必须拥有start_timeend_time字段。

这简化了模型,但意味着模型本身不限制时间范围(例如,周一12-13),而是允许选择任何时间。但是,您可以使用custom validation来限制可以选择的时间范围。即这样它们只能按小时间隔或任何要求选择。我确信有一些在线资源可以帮助你解决这个问题,但如果你找不到任何信息,请告诉我,我会看看能不能提供帮助。

我试图找到一个javascript / jQuery库,它已经处理了时间选择功能但无法找到它。虽然创建起来相当简单。我怎么看:

  • 日期范围表,每个元素都包含data-startdata-end属性。

  • 点击时间范围,收集两个数据属性。

  • 提交,停止传播并将两个日期范围提交到视图并保存到start_timeend_time