Как преобразовать дату в дату, выпадающий и выпадающий может быть отдельный день, месяц, год - PullRequest
0 голосов
/ 27 мая 2019

i need this type of dropdown[![][2]] 2

<p>
  <label for="id_date_of_birth">Date of birth:</label>
  <input type="date" name="date_of_birth" value="2019-06-14" id="id_date_of_birth">
</p>

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

Ответы [ 3 ]

0 голосов
/ 27 мая 2019

Вы ищете что-то подобное?

Если вы .. не очень хорошая идея <3 </p>

<select name='day'>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
  <option value='4'>4</option>
  <option value='5'>5</option>
  <option value='6'>6</option>
  <option value='7'>7</option>
  <option value='8'>8</option>
  <option value='9'>9</option>
  <option value='10'>10</option>
  <option value='11'>11</option>
  <option value='12'>12</option>
  <option value='13'>13</option>
  <option value='14'>14</option>
  <option value='15'>15</option>
  <option value='16'>16</option>
  <option value='17'>17</option>
  <option value='18'>18</option>
  <option value='19'>19</option>
  <option value='20'>20</option>
  <option value='21'>21</option>
  <option value='22'>22</option>
  <option value='23'>23</option>
  <option value='24'>24</option>
  <option value='25'>25</option>
  <option value='26'>26</option>
  <option value='27'>27</option>
  <option value='28'>28</option>
  <option value='29'>29</option>
  <option value='30'>30</option>
  <option value='31'>31</option>
</select>

<select name='month'>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
  <option value='4'>4</option>
  <option value='5'>5</option>
  <option value='6'>6</option>
  <option value='7'>7</option>
  <option value='8'>8</option>
  <option value='9'>9</option>
  <option value='10'>10</option>
  <option value='11'>11</option>
  <option value='12'>12</option>
</select>

<select name='day'>
  <option value='2019'>2019</option>
  <option value='2018'>2018</option>
  <option value='2017'>2017</option>
  <option value='2016'>2016</option>
  <option value='2015'>2015</option>
  <option value='2014'>2014</option>
  <option value='2013'>2013</option>
  <option value='2012'>2012</option>
  <option value='2011'>2011</option>
  <option value='2010'>2010</option>
  <option value='2009'>2009</option>
  <option value='2008'>2008</option>
  <option value='2007'>2007</option>
  <option value='2006'>2006</option>
  <option value='2005'>2005</option>
  <option value='2004'>2004</option>
  <option value='2003'>2003</option>
  <option value='2002'>2002</option>
  <option value='2001'>2001</option>
  <option value='2000'>2000</option>
  <option value='1999'>1999</option>
  <option value='1998'>1998</option>
  <option value='1997'>1997</option>
  <option value='1996'>1996</option>
  <option value='1995'>1995</option>
  <option value='1994'>1994</option>
  <option value='1993'>1993</option>
  <option value='1992'>1992</option>
  <option value='1991'>1991</option>
  <option value='1990'>1990</option>
</select>
0 голосов
/ 27 мая 2019

В форме Django установите виджет для DateField на SelectDateWidget (импортируйте его из django.forms.widgets).Тогда вам нужно всего лишь сделать {{ form.date_of_birth }} в вашем шаблоне.

class ProfileUpdateView(UpdateView):
    form_class = MyProfileForm

class MyProfileForm(forms.ModelForm):
    class Meta:
        model = Profile
        widgets = {'date_of_birth': SelectDateWidget()}
0 голосов
/ 27 мая 2019

Вы можете разбить поле на 3 части (вам нужно получить части дня / месяца / года в django) на 3 поля, например:

<p>
  <label>Day:
    <select name="day">
      <option>1</option>
      <option>2</option>
      ...
      <option>31</option>
    </select>
  </label>
  <label>Month:
    <select name="month">
      <option>1</option>
      <option>2</option>
      ...
      <option>12</option>
    </select>
  </label>
  <label>Year:
    <select name="year">
      <option>1900</option>
      <option>1901</option>
      ...
      <option>3000</option>
    </select>
  </label>

Но я бы НЕ рекомендовал это. Это усложняет ввод дат (несколько кликов и прокруток), пользователь не может копировать / вставлять даты или выбирать из визуального календаря. Вам также необходимо добавить собственную логику на стороне клиента, чтобы пользователь не выбирал даты, такие как 31 февраля.

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