我正在尝试创建一个表调度程序,人们可以在这里选择他们自由的时间段。我正在使用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的新手,一个月前才拿起它。感谢您给出的任何建议。
答案 0 :(得分:0)
我只需使用两个datetime fields并使用javascript在前端使用插槽渲染表格。您必须拥有start_time
和end_time
字段。
这简化了模型,但意味着模型本身不限制时间范围(例如,周一12-13),而是允许选择任何时间。但是,您可以使用custom validation来限制可以选择的时间范围。即这样它们只能按小时间隔或任何要求选择。我确信有一些在线资源可以帮助你解决这个问题,但如果你找不到任何信息,请告诉我,我会看看能不能提供帮助。
我试图找到一个javascript / jQuery库,它已经处理了时间选择功能但无法找到它。虽然创建起来相当简单。我怎么看:
日期范围表,每个元素都包含data-start
和data-end
属性。
点击时间范围,收集两个数据属性。
提交,停止传播并将两个日期范围提交到视图并保存到start_time
和end_time
。