django 管理パネルには、現在、日付を入力するための素敵な Javascript カレンダーを表示する DateField があります。ただし、私は月と年にしか興味がありません。それで、カレンダーに月と年だけを表示させることは可能かどうか疑問に思っていました。(将来の日付を入力できないように使用を制限できる場合は、追加のブラウニー ポイント.)
同様の質問がありましたが、回答はありませんでした。
django 管理パネルには、現在、日付を入力するための素敵な Javascript カレンダーを表示する DateField があります。ただし、私は月と年にしか興味がありません。それで、カレンダーに月と年だけを表示させることは可能かどうか疑問に思っていました。(将来の日付を入力できないように使用を制限できる場合は、追加のブラウニー ポイント.)
同様の質問がありましたが、回答はありませんでした。
最も簡単な (月と年しか気にしないため、最も正しい) 方法は、モデル フィールドを月と年の 2 つのフィールドに分割することです。代わりにそれを保存します。
したがって、次の代わりに:
class Blah(models.Model):
...
your_date = models.DateField()
次のようになります。
class Blah(models.Model):
MONTH_CHOICES=((1,"January"), (2,"February"), ...)
...
your_year = models.IntegerField()
your_month = models.IntegerField(choices=MONTH_CHOICES)
また、メソッドで将来の年または将来の月 (年/月の組み合わせ) を制限するために必要なロジックを実装できますclean()
。
編集:保存する日付が実際にないため、上記の括弧内で最も正しいと言います。選択した月/年の最初、最後、または任意の日を保存することを決定する必要があります。
2番目の編集:年の月を選択するためのjavascriptに関する限り、これがあります(そのページの「月選択カレンダー」の例を参照)。Django の管理ページに JavaScript を追加して使用することは可能ですが、以前の編集で述べたように、対処する日を選択する必要があります。