django 如何将日期格式设置为 DD/MM/YYYY

you*_*med -3 django django-models django-forms django-views

在这种情况下,django 如何将日期格式化为 DD/MM/YYYY :

class Invoice(models.Model):
    date = models.DateField(default=timezone.now)

class InvoiceForm(ModelForm):
    class Meta:
        model = Invoice
        fields = "__all__"

Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 5

AModel不是关于如何向客户呈现数据,而是关于如何在数据库中存储数据。

\n

如果您向用户呈现数据,则取决于活动的设置。例如,如果USE_L10N设置\xc2\xa0 [Django-doc]处于活动状态,它将尝试确定用户的区域设置,并根据该格式确定日期。这意味着德国用户将看到与美国用户不同的日期格式。

\n

如果USE_L10N设置为False,则表单字段使用DATE_INPUT_FORMATS设置\xc2\xa0中的第一项[Django-doc]中的第一项。默认情况下这是:

\n
\n
[\n    \'%Y-%m-%d\', \'%m/%d/%Y\', \'%m/%d/%y\', # \'2006-10-25\', \'10/25/2006\', \'10/25/06\'\n    \'%b %d %Y\', \'%b %d, %Y\',            # \'Oct 25 2006\', \'Oct 25, 2006\'\n    \'%d %b %Y\', \'%d %b, %Y\',            # \'25 Oct 2006\', \'25 Oct, 2006\'\n    \'%B %d %Y\', \'%B %d, %Y\',            # \'October 25 2006\', \'October 25, 2006\'\n    \'%d %B %Y\', \'%d %B, %Y\',            # \'25 October 2006\', \'25 October, 2006\' ]
Run Code Online (Sandbox Code Playgroud)\n
\n

所以它首先会格式化年、月,然后是日期,例如2020-08-28。因此,您可以指定一个不同的元素(第一个)来更改所有Form具有DateFieldfields\xc2\xa0 [Django-doc]的元素的元素。

\n

如果要指定一次性字段,可以使用参数\ format=\xe2\x80\xa6xc2\xa0 [Django-doc]DateInput例如:

\n
from django import forms\n\nclass InvoiceForm(ModelForm):\n    date = forms.DateField(widget=forms.DateInput(format=\'%d/%m%Y\'))\n\n    class Meta:\n        model = Invoice\n        fields = \'__all__\'
Run Code Online (Sandbox Code Playgroud)\n

然后,您还应该在设置中包含该格式DATE_INPUT_FORMATS,并且比“重叠”格式(例如%m/%d/%Y和)具有更高的优先级更好%m/%d/%y,以确保该值也可以被解析。

\n

input_formats=\xe2\x80\xa6您还可以通过指定参数\xc2\xa0 [Django-doc]在表单字段中提供一次性的输入格式列表。

\n