Виджет DateField's DateInput с 'format="%B"' не локализован/переведен
Я пытаюсь отобразить поле формы с полным представлением месяца + года (например, 'December 2021'), но не могу локализовать его на немецкий язык.
В forms.py я использую format("%B %Y") в виджете, чтобы добиться такого представления, вот так:
date = DateField(widget=DateInput(attrs={"autocomplete": "off"}, format="%B %Y"))
Я использую эту форму в UpdateView, ничего причудливого...
<div class="form-row">
... some fields
<div class="form-group flatpickrdatetimeinput col-md-6 mb-0">
{{ form.date|as_crispy_field }}
</div>
</div>
Представление даты работает в терминах Month + Year, но мне нужно локализовать название месяца (December -> Dezember).
Я не могу найти ошибку, я пробовал изменить атрибут поля (localize=True), а также я поигрался с настройками (i18n, l10n, etc) безрезультатно.
На самом деле, настройки до сих пор работали. В том же шаблоне я использую фильтр шаблона 'date' и он прекрасно переводит месяц
<h2>{{campaign.date | date:'F Y' }}</h2>
Во время написания вопроса у меня возникла идея попробовать задать начальные данные и локализовать их там.
Это действительно сработало, но это обходной путь, и я все еще думаю, что это должно работать непосредственно из формы.
Если у вас есть решение, пожалуйста, не стесняйтесь добавить его. Или оставьте комментарий, если вы столкнулись с этой проблемой и считаете, что это ошибка.
from django.utils import formats
class CampaignUpdateView(CampaignMixin, UpdateView):
def get_initial(self):
initial = super().get_initial()
initial.update({"date": formats.date_format(self.object.date, format="F Y", use_l10n=True)})
return initial