我有一个UpdateView,当我访问编辑页面时,我的日期字段将月份呈现为非本地化。
在我的表单中,我使用格式("%B %Y")来表示完整的月份+年份,如下所示:
class CampaignForm(ModelForm):
date = DateField(widget=DateInput(attrs={"autocomplete": "off"}, format="%B %Y"))
我在一个基本的UpdateView设置中使用表单,我渲染模板…
<div class="form-row">
<div class="form-group flatpickrdatetimeinput col-md-6 mb-0">
{{ form.date|as_crispy_field }}
</div>
</div>
日期表示以月+年的形式工作,但我需要将月份名称本地化为当地语言。
我找不到错误,我试着改变字段属性(localalize =True),我也试过设置(i18n, l10n等),但没有成功。
事实上,到目前为止,这些设置都很有效。在同一个模板中,我使用'date'模板过滤器,它可以很好地转换月份
<h2>{{campaign.date | date:'F Y' }}</h2>
如何在表单/表单字段中使用内部django本地化?
在编写问题时,我有一个想法,尝试设置初始数据并将其本地化。
它确实工作,但这是一个解决方案,我仍然认为它应该直接从表单工作。
如果您有解决方案,请随时添加。或者如果你遇到了这个问题,你认为这是一个错误,请留下评论。
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