django models. DateField предотвращает прошлое - PullRequest
0 голосов
/ 24 апреля 2018

Я ищу способы запретить пользователю вводить прошлые даты на странице администрирования django.Примерно так:

Django: Как настроить DateField на прием только дат Сегодня и Будущего

Моя модель выглядит так:

class MyModel(models.Model):
    date = models.DateField(null=True, blank=True, default=None)

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Вы можете выполнить проверку в файле forms.py, чтобы убедиться, что введенная дата не старше текущей даты. Таким образом, даже если кто-то попытается ввести более старую дату, пользователь получит ошибку. Надеюсь, это работает для вас.

0 голосов
/ 24 апреля 2018

Правильный способ сделать это - валидатор .Например:

def validate_date(date):
    if date < timezone.now().date():
        raise ValidationError("Date cannot be in the past")

Эта функция определит, является ли конкретное входное значение приемлемым, затем вы можете добавить валидатор в поле модели следующим образом:

date = models.DateField(null=True, blank=True, default=None, validators=[validate_date])
...