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)
AModel
不是关于如何向客户呈现数据,而是关于如何在数据库中存储数据。
如果您向用户呈现数据,则取决于活动的设置。例如,如果USE_L10N
设置\xc2\xa0 [Django-doc]处于活动状态,它将尝试确定用户的区域设置,并根据该格式确定日期。这意味着德国用户将看到与美国用户不同的日期格式。
如果USE_L10N
设置为False
,则表单字段使用DATE_INPUT_FORMATS
设置\xc2\xa0中的第一项[Django-doc]中的第一项。默认情况下这是:
\n\nRun Code Online (Sandbox Code Playgroud)\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\' ]
所以它首先会格式化年、月,然后是日期,例如2020-08-28
。因此,您可以指定一个不同的元素(第一个)来更改所有Form
具有DateField
fields\xc2\xa0 [Django-doc]的元素的元素。
如果要指定一次性字段,可以使用参数\ format=\xe2\x80\xa6
xc2\xa0 [Django-doc]DateInput
例如:
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
,以确保该值也可以被解析。
input_formats=\xe2\x80\xa6
您还可以通过指定参数\xc2\xa0 [Django-doc]在表单字段中提供一次性的输入格式列表。
归档时间: |
|
查看次数: |
4909 次 |
最近记录: |