use*_*641 4 django django-models django-forms django-views
forms.py
DATE_INPUT_FORMAT = (
('%d/%m/%Y','%m/%d/%Y')
)
class ReportForm(forms.ModelForm):
manual_date = forms.DateField(input_formats = DATE_INPUT_FORMAT,
widget=forms.DateInput(format = '%d/%m/%Y'))
Run Code Online (Sandbox Code Playgroud)
1.Date格式应该根据数据库中的值进行更改,如果value在db中,则显示第一种格式,不显示,否则部分正在执行.
2.格式的变化取决于条件.
3.我在这里面临问题,如果输入格式为此(%m /%d /%Y),则在表单上,日期值将被交换并保存在数据库中.如果给定日期是07/06/2013 - > 2013年6月7日,在表格发布后,它将在2013年7月6日 - > 2013年7月6日在现场查看.它无法正常工作.
需要帮助来解决这个问题.
谢谢
小智 5
最简单的解决方案是创建工厂以呈现表单:
def ReportFormFactory(date_format):
class ReportForm(forms.ModelForm):
manual_date = forms.DateField(
input_formats=[date_format],
widget=forms.DateInput(format=date_format)
)
return ReturnForm
Run Code Online (Sandbox Code Playgroud)
然后在视图中:
if int(dateformat):
ReportForm = ReportFormFactory('%m/%d/%Y')
else:
ReportForm = ReportFormFactory('%d/%m/%Y')
Run Code Online (Sandbox Code Playgroud)
日期应仅在窗口小部件的presention阶段更改为字符串,在其他位置将日期时间保留为日期时间或日期对象
归档时间: |
|
查看次数: |
1691 次 |
最近记录: |