Самое простое (самое правильное, так как вам важны только месяц и год), нужно разбить поле модели на два поля: месяц и год. И сохраните это вместо этого.
Таким образом, вместо:
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()
.
Редактировать: Я говорю наиболее правильно в скобках выше, потому что у вас действительно нет даты для хранения. Вы должны решить сохранить первый, последний или какой-либо произвольный день выбранного месяца / года.
Второе редактирование: Что касается javascript для выбора месяца года, то есть этот (см. Пример «Выбор месяца» на этой странице). Можно добавить javascript на страницу администрирования в Django и использовать его, но вам, как было сказано в моем предыдущем редактировании, придется выбрать день, с которым нужно иметь дело.