class Invoice(models.Model):
date = models.DateField(default=timezone.now)
class InvoiceForm(ModelForm):
class Meta:
model = Invoice
fields = "__all__"
from django import forms
class InvoiceForm(ModelForm):
date = forms.DateField(widget=forms.DateInput(format='%d/%m%Y'))
class Meta:
model = Invoice
fields = '__all__'
1条答案
按热度按时间vwkv1x7d1#
Model
不是关于如何向客户呈现数据,而是关于如何在数据库中存储数据。如果你向用户显示数据,这取决于激活的设置。例如,如果激活了**
USE_L10N
setting [Django-doc],它将尝试确定用户的区域设置,并基于该格式确定日期。这意味着德国用户将看到与美国用户不同的日期格式。如果
USE_L10N
被设置为False
,表单域将使用DATE_INPUT_FORMATS
**设置[Django-doc]中的第一项。默认情况下,这是:所以它会先格式化年,月,然后是日期,比如
2020-08-28
.因此你可以指定一个不同的元素(第一个)来改变所有Form
的**DateField
字段[Django-doc].如果你想指定一个一次性字段,你可以使用
DateInput
小部件的format=…
**参数[Django-doc],例如:然后,您还应该在
DATE_INPUT_FORMATS
设置中包含该格式,并且最好使用比“重叠”格式(如%m/%d/%Y
和%m/%d/%y
)更高的优先级,以确保该值也可以被解析。您也可以通过指定一个**
input_formats=…
**参数[Django-doc]在表单域中提供一个一次性的输入格式列表。