0

ある種のスケジュールを管理するためのウェブサイトを作っています。

カレンダーなどを調べてみたところ、グーグルのカレンダーのこのフォームが私が欲しいものであることがわかりました。Googleカレンダーリマインダーインターフェース

問題は、私が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 に答える