我正在制作一个网站来管理某种日程安排。
我查看了日历等,发现谷歌日历中的这个表格正是我想要的。
问题是我很难弄清楚如何解决这个问题Finaliza
。我有一个Reminder
模型,但是……我应该为每个选项创建一个列并使用表单小部件吗?我可以使用一些罐装解决方案吗?
我正在制作一个网站来管理某种日程安排。
我查看了日历等,发现谷歌日历中的这个表格正是我想要的。
问题是我很难弄清楚如何解决这个问题Finaliza
。我有一个Reminder
模型,但是……我应该为每个选项创建一个列并使用表单小部件吗?我可以使用一些罐装解决方案吗?
为什么不将列添加到模型中:
finalize_type = models.CharField(choices=(('Never', ''), ('Repetitions', ''), ('Date', '')))
finalize_repetitions = models.IntegerField()
finalize_date = models.DateField()
# model clean!
def clean(self):
if finalize_type == 'Repetitions':
# check that there is number in finalize_repetitions
# raise validation error if not
elif finalize_type == 'Date':
# check date on finalize_date
# You should also check if date and repetions aren't set when type == 'Never'
如果我没记错的话,模型清洁会在保存时触发。因此,如果您实现 ModelForm,它应该显示在表单错误中。
我也会实现一个方法
@property
def next_event()
"""returns date of next repetition, None if finished"""
希望能帮助到你。