Получил мой виджет DatePicker, устанавливающий правильный формат .... теперь проверка на django форме не удается - PullRequest
0 голосов
/ 09 января 2020

У меня есть форма (визуализированная с хрустящими формами), которую я определяю в forms.py:

class Meta:
    model=HousingRequest

    fields = ('off_site_location', 'notes', 'checkin_date', 'checkout_date', 'purpose_of_visit', 'project_for_visit')

    widgets = {
      #'room' : TextInput(attrs={'tabindex':'1', 'placeholder':'Trainee First Name'}),      
      #'user' : TextInput(attrs={'tabindex':'1', 'placeholder':'Trainee First Name'}),   #these are really already from who is logged in?
      #'male': TextInput(attrs={'tabindex':'3', 'placeholder':'Trainee''s Institution'}),  #we might get this from who is logged in also
      'off_site_location' : TextInput(attrs={'tabindex':'4', 'placeholder':'Offsite location'}),
      'off_site_phone' : TextInput(attrs={'tabindex':'5', 'placeholder':'Contact Phone'}),
      'notes' : TextInput(attrs={'tabindex':'5', 'placeholder':'notes'}),

      'checkin_date':DateInput(attrs={
          'class':'datepicker form-control',
          'tabindex' : '6',
          'placeholder' : 'Checkin Date MM/DD/YYYY',          
          'autocomplete':'off',
      }, format='%b %d, %Y'),

 ...etc...

Формат, который я установил: 25 октября 2019

Отлично. Мой сборщик дат теперь возвращает этот формат (когда в другой форме он возвращался 25.10.2009) он определен в моей базе. html

<script type="text/javascript">


    $(function() {
      var j = jQuery.noConflict();    
      j('.dateinput').datepicker({ dateFormat: "M dd, yy" });
    });

  </script>

Хорошо, поэтому я нажимаю в поле дата сборщик подходит. Выберите его, я получаю:

25 октября 2019

Я иду, чтобы сохранить форму, в поле написано «Введите правильную дату».

Не знаю, где и почему проверка не удается.

Вся причина этого кроется в другой форме, использующей простое:

<td> {{ hou.checkin_date}} </td>

Оно отображалось как 25 октября 2019 года при загрузке (из объекта django, переданного в шаблон)

Который при вызове средства выбора даты (через javascript) заменял эту дату на 25.10.2009, и это вызывало резкий удар (часть, отправленная обратно через ajax, сохранялась просто хорошо без ошибок проверки). Итак, теперь я обновил этот указатель даты выше, чтобы иметь формат, указанный 25 октября 2019 года, так что моя форма ajaxy, которая просто отображает hou.checkin_date, прекрасно работает! Выглядит великолепно ...

теперь старая форма порвалась с проверкой данных, описанной в виджетах выше ...

Так что не уверен, почему он продолжает указывать неверную дату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...