代码之家  ›  专栏  ›  技术社区  ›  gornvix

Django在窗体上显示日期时间时忽略本地化设置

  •  2
  • gornvix  · 技术社区  · 5 年前

    LANGUAGE_CODE = 'en-gb'
    TIME_ZONE = 'Europe/London'
    USE_I18N = True
    USE_L10N = True
    USE_TZ = True
    

    有一个模型在“模型.py":

    class Foo(models.Model):
        date_time = models.DateTimeField(null=True, blank=True)
    

    class FooForm(forms.ModelForm):
        class Meta:
            model = Foo
            fields = ['date_time']
    

    在模板中:

    <form method="post">
        {% csrf_token %}
        <table>
            {{ form.as_table }}
        </table>
        <button type="submit">Submit</button>
        <button type="button" onclick="javascript:window.location='/dashboard';">Cancel
        </button>
    </form>
    

     date_time = forms.DateTimeField(input_formats=['%d/%m/%Y %H:%M'])
    

    ……但没有任何效果。

    2 回复  |  直到 5 年前
        1
  •  1
  •   willeM_ Van Onsem    5 年前

    这是 input _formats 输入,而不是呈现它。您可以指定 格式 数据与 format=… parameter [Django-doc]

    date_time = forms.DateTimeField(
        input_formats=['%d/%m/%Y %H:%M']
        widget=forms.DateTimeInput(format='%d/%m/%Y %H:%M')
    )
        2
  •  1
  •   Tms91    5 年前

    日期以“2020-12-20 10:11:12”的形式显示在屏幕上 例如。

    你说的是Django管理部分显示的日期和时间吗?

    如果是这样,这是因为 TIME_ZONE USE_TZ in设置不适用于django管理部分中显示的数据,而仅适用于模板中显示的数据。

    here ,您可以为每个管理员用户设置一个时区,以便每个管理员都能看到根据其时区表示的管理部分的时间日期数据。