0

我正在制作一个网站来管理某种日程安排。

我查看了日历等,发现谷歌日历中的这个表格正是我想要的。谷歌日历提醒界面

问题是我很难弄清楚如何解决这个问题Finaliza。我有一个Reminder模型,但是……我应该为每个选项创建一个列并使用表单小部件吗?我可以使用一些罐装解决方案吗?

4

1 回答 1

1

为什么不将列添加到模型中:

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"""

希望能帮助到你。

于 2012-05-12T04:06:37.117 回答