Django множественный выбор поля не отображается на странице - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь получить форму, в которой указаны имя и месяц и будут возвращаться студенты с таким именем и месяцем (система посещаемости).Я использую MultipleChoiceField для формы, но она не отображается в браузере.Я также использую Materialise CSS.Как мне решить эту проблему?Я также рендеринг полей формы вручную.

forms.py:

class attendenceFinder(forms.Form):
    months = ((1, 'JAN'),
             (2, 'FEB'),
             (3, 'MAR'),
             (4, 'APR'),
             (5, 'MAY'),
             (6, 'JUN'),
             (7, 'JUL'),
             (8, 'AUG'),
             (9, 'SEP'),
             (10, 'OCT'),
             (11, 'NOV'),
             (12, 'DEC')
    )    

    name = forms.CharField()
    month = forms.MultipleChoiceField(widget=forms.SelectMultiple, choices=months)

Внимание :.html:

<form action="/get_attendence/", method="post">
<div class="container">
        {{ form.non_field_errors }}
    <div class="fieldWrapper">
        {{ form.name.errors }}
        <label for="{{ form.name.id_for_label }}">Name</label>
        {{ form.name }}
    </div>
    <div class="fieldWrapper">
        {{ form.month.errors }}
        <label for="{{ form.month.id_for_label }}">{{form.month}}
            <span>{{ form.month.label }}</span>
        </label>
    </div>
    <button class="waves-effect waves-light btn-large lime accent-2 black-text" type="submit" name="action">Submit
    <i class="material-icons right">send</i>
    </div>
</form>

Источник страницы:

   <div class="fieldWrapper">

        <select name="month" required id="id_month" multiple>
  <option value="1">JAN</option>

  <option value="2">FEB</option>

  <option value="3">MAR</option>

  <option value="4">APR</option>

  <option value="5">MAY</option>

  <option value="6">JUN</option>

  <option value="7">JUL</option>

  <option value="8">AUG</option>

  <option value="9">SEP</option>

  <option value="10">OCT</option>

  <option value="11">NOV</option>

  <option value="12">DEC</option>

</select>
        <span>Month</span>

    </div>

Форма в браузере:

enter image description here

Поле имени отображается хорошо, а множественный выбор по месяцу - нет.

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Материал Django очень полезен для рендеринга форм, использующих Materializecss.Вот ссылка на проект https://github.com/viewflow/django-material.

0 голосов
/ 10 апреля 2019

Материализация CSS ожидает увидеть теги с class = "browser-default".Однако формы Django не добавляют класс.Таким образом, следующее должно быть передано в forms.py:

class attendenceFinder(forms.Form):
    months = ((1, 'JAN'),
              (2, 'FEB'),
              (3, 'MAR'),
              (4, 'APR'),
              (5, 'MAY'),
              (6, 'JUN'),
              (7, 'JUL'),
              (8, 'AUG'),
              (9, 'SEP'),
              (10, 'OCT'),
              (11, 'NOV'),
              (12, 'DEC')
    )
 month = forms.MultipleChoiceField(choices=months, widget=forms.Select(
            choices=months,
            attrs={'class': 'browser-default'}))

Все кредиты идут по этой ссылке:

https://github.com/Dogfalo/materialize/issues/4904

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