DATE_FORMAT
和 MONTH_DAY_FORMAT
的英文值,但在希伯来语中保留默认值(或重新定义)。这样它们就不会相同,也不会与 Django 的默认值相同。在英文中,我们将有:DATE_FORMAT = 'j F Y'
MONTH_DAY_FORMAT = 'j F'
YEAR_FORMAT = 'Y'
并用希伯来语:
DATE_FORMAT = 'j בF Y'
MONTH_DAY_FORMAT = 'j בF'
(而YEAR_FORMAT
将保持不变)。
模板目前看起来像这样:
{% if can_view_profile and user.date_of_birth %}
{% if can_view_dob_day_month or can_view_dob_year %}
<tr>
<th>{% if can_view_dob_day_month %}{% trans 'Birth Date' %}{% elif can_view_dob_year %}{% trans 'Birth Year' %}{% endif %}</th>
<td>
{% if can_view_dob_day_month and can_view_dob_year %}
{{ user.date_of_birth|date:settings.DATE_FORMAT }}
{% elif can_view_dob_day_month %}
{{ user.date_of_birth|date:settings.MONTH_DAY_FORMAT }}
{% elif can_view_dob_year %}
{{ user.date_of_birth|date:settings.YEAR_FORMAT }}
{% endif %}
</td>
</tr>
{% endif %}
{% endif %}
我希望它能在每种语言中以这些格式显示日期。我该怎么做?
更新:我发现可以在this link中按语言环境覆盖格式,并添加了
en
和he
语言环境的格式,但它们不起作用。我添加了调试代码,您可以在here中看到,但它不起作用。它显示的日期是Jan. 1, 2018
,而不是我期望的。我也不知道在模板中是否应该在
DATE_FORMAT
前加上settings.
,但如果没有它,它不会显示任何内容。我还希望在特定语言环境未定义某个格式或我根本没有定义的语言环境中保留默认设置。
YEAR_FORMAT
或任何其他格式。 - Urisettings.py
应该成为默认设置,你可以覆盖formats.py
中的设置。 - Tarun LalwaniDATE_FORMAT
、DATETIME_FORMAT
、SHORT_DATE_FORMAT
或SHORT_DATETIME_FORMAT
中的一个 - 我认为不可能指定自己的格式,除非你硬编码实际格式(这样就不会随着地区而改变)。如果您需要更多的灵活性,可以编写自己的模板标签来完成此操作。 - solarissmoke