Как добавить bootstrap 4 datepicker в Django

Я пытался добавить загрузчик даты начальной загрузки 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

2
задан StreetCoder 16 January 2019 в 00:57
поделиться

1 ответ

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

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

В вашем случае что-то подобное будет работать: [114 ]

from tempus_dominus.widgets import DateTimePicker

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

Удачи!

0
ответ дан FlipperPA 16 January 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: