Как изменить ввод поля формы django, чтобы HTML отображался с определенным типом ввода - PullRequest
0 голосов
/ 07 января 2019

Следующая ситуация: Я хочу иметь небольшую форму, в которой пользователь может ввести день, время начала и время окончания. Для каждого из этих трех полей я хочу иметь указатель даты / времени. Так как я не хочу использовать Bootstrap или jQuery, потому что мой проект очень маленький и я просто хочу, чтобы он был маленьким, я хотел использовать встроенные средства выбора HTML, которые отображаются при изменении типа ввода поля на «date» или «date». время'.

Я пытался изменить типы ввода моих полей в соответствии с этим вопросом / ответом: Django form.as_p DateField не показывает тип ввода в качестве даты Это не сработало для меня.

Это моя форма со входами. Есть два подхода, для DateInput, который я пробовал, как показано в связанном вопросе, для TimeInput, который я пытался переопределить виджет.

from django import forms
from django.contrib.admin import widgets
from django.utils import timezone
from django.forms.widgets import TimeInput

from .models import Occupancy


class UltraDateInput(forms.DateInput):
    input_type = 'date'


class UltraTimeInput(TimeInput):
    input_type = 'time'


class OccupancyForm(forms.ModelForm):
    occupancy_date = forms.DateField()
    start_time = forms.TimeField()
    end_time = forms.TimeField()

    class Meta:
        model = Occupancy
        exclude = ['user', 'start', 'end']
        fields = ['occupancy_date', 'start_time', 'end_time', 
                 'notes']
        widgets = {
            'occupancy_date': UltraDateInput(),
            'start_time': UltraTimeInput(),
            'end_time': UltraTimeInput()
        }

Странные ультра-имена потому, что я думал, что мои пользовательские виджеты, возможно, затенены какой-то более глубокой логикой, но это не помогло.

Я ожидаю, что виджет изменит тип ввода моих сгенерированных полей на дату и время в моем HTML-файле, который я получаю в конце, но они все еще остаются простыми текстовыми вводами.

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