Как ограничить выбор дат в календаре с админ панели для формы записи на консультацию?

Ссылка скопирована
9 февраля 2026 1 ответ

Здравствуйте. Кто может, подскажите пожалуйста, на django делаю форму записи на консультацию. Дату выбирать для записи я могу, использую input time, но, к сожалению, не хватает знаний как реализовать так, чтобы из панели администрирования django я мог выбирать диапазоны дней или дни, которые пользователь не сможет выбирать. Быть может лучше использовать уже готовую библиотеку для этого, кто разбирается в этом, может подскажите в каком направлении копать, может кто такое уже реализовывал?

Дополнительно:

django-admin-date-hierarchy

  • https://developer.mozilla.org/ru/docs/Web/HTML/Ele...
    Если один диапазон а так вообще скриптом сравнить дату с началом и концом диапазонов)
  • Ответы:

    Вот пример с годом постройки, ввиду контекста приложения здесь models.IntegerField, но это по аналогии можно и для дат сообразить

    from django.core.validators import MaxValueValidator, MinValueValidator  class Unit(models.Model):     """модель объекта недвижимости"""     year_construction = models.IntegerField(verbose_name='Год постройки', choices=year_choices(),null=True, blank=True, validators=[MinValueValidator(1950), max_value_current_year])  def current_year():     return datetime.date.today().year  def max_value_current_year(value):     return MaxValueValidator(current_year())(value)  def year_choices() -> List:     return [(r,r) for r in range(1950, datetime.date.today().year+1)]

    from django.core.validators import MaxValueValidator, MinValueValidator class Unit(models.Model): """модель объекта недвижимости""" year_construction = models.IntegerField(verbose_name='Год постройки', choices=year_choices(),null=True, blank=True, validators=[MinValueValidator(1950), max_value_current_year]) def current_year(): return datetime.date.today().year def max_value_current_year(value): return MaxValueValidator(current_year())(value) def year_choices() -> List: return [(r,r) for r in range(1950, datetime.date.today().year+1)]

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Кирилл JS Ответ

    Для ограничения выбора дат в календаре с админ панели для формы записи на консультацию, можно использовать JavaScript и HTML. Вот пример решения данной проблемы:

    1. Создайте поле ввода для даты в форме записи на консультацию:

    ```html

    ```

    2. Добавьте скрипт JavaScript, который будет ограничивать выбор дат в календаре. В этом примере мы ограничим выбор дат только до конца текущего месяца:

    ```html

    var consultationDateInput = document.getElementById('consultationDate');

    var today = new Date();
    var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth() + 1, 0);

    consultationDateInput.setAttribute('max', lastDayOfMonth.toISOString().split('T')[0]);

    ```

    Этот скрипт устанавливает максимальную дату выбора в поле ввода даты на последний день текущего месяца. Таким образом, пользователь не сможет выбрать дату после окончания текущего месяца.

    3. Теперь при открытии календаря для выбора даты, пользователь увидит только доступные для выбора даты до конца текущего месяца.

    Это простое и эффективное решение, которое позволит ограничить выбор дат в календаре с админ панели для формы записи на консультацию. Вы можете настроить ограничения выбора дат по своему усмотрению, изменив логику скрипта JavaScript в соответствии с вашими требованиями.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно