Как добавить bootstrap 4 datepicker в Django - PullRequest
0 голосов
/ 16 января 2019

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

widgets.py

from django.forms import DateTimeInput, DateInput

class BootstrapDateTimePickerInput(DateTimeInput):
    template_name = 'widgets/bootstrap_datetimepicker.html'

    def get_context(self, name, value, attrs):
        datetimepicker_id = 'datetimepicker_{name}'.format(name=name)
        if attrs is None:
            attrs = dict()
        attrs['data-target'] = '#{id}'.format(id=datetimepicker_id)
        attrs['class'] = 'form-control datetimepicker-input'
        context = super().get_context(name, value, attrs)
        context['widget']['datetimepicker_id'] = datetimepicker_id
        return context

forms.py

class ClaimForm(forms.ModelForm):

    purchase_date = forms.DateTimeField(input_formats=['%d/%m/%Y %H:%M'], widget=BootstrapDateTimePickerInput())

    class Meta(forms.ModelForm):
        model = Claim
        fields = ['store', 'expense', 'rewards', 'money_receipt', 'purchase_date']

Я хочу добавить значение даты в поле ввода при редактировании формы. enter image description here

1 Ответ

0 голосов
/ 16 января 2019

Мы создали пакет Python для Django для виджетов Bootstrap 4 для выбора даты и времени поверх библиотеки Tempus Dominus JS. Подробности здесь:

https://pypi.org/project/django-tempus-dominus/

В вашем случае что-то вроде этого будет работать:

from tempus_dominus.widgets import DateTimePicker

purchase_date = forms.DateTimeField(
    widget=DateTimePicker(),
    initial='1980-01-01 12:00:00',
)

Удачи!

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