在Django中,我有一个使用SplitDateTimeField的表单,它被设置为具有一个初始值,如下所示。当尝试查看包含表单的模板时,我得到了ValueError:"strftime format end with raw %“。
# forms.py
class DiscountForm(Form):
title = CharField(widget=TextInput(), required=True)
description = CharField(widget=Textarea(), required=True)
fineprint = CharField(widget=Textarea(), required=True)
start = SplitDateTimeField(
input_date_formats='%m/%d/%Y',
input_time_formats='%I:%M %p',
initial= lambda: dt.datetime.now(),
required=True
)
end = SplitDateTimeField(
input_date_formats='%m/%d/%Y',
input_time_formats='%I:%M %p',
initial= lambda: dt.datetime.now() + dt.timedelta(days=30),
required=True
)
limit = IntegerField(min_value=0, initial=0, required=True)
# relevant in settings.py
USE_I18N = False
USE_L10N = False
USE_TZ = True
DATETIME_INPUT_FORMATS = ('%m/%d/%Y %I:%M %p')
DATE_INPUT_FORMATS = ('%m/%d/%Y')
TIME_INPUT_FORMATS = ('%I:%M %p')这是我的回溯:http://dpaste.org/y55eV/
任何指导都是非常感谢的。谢谢
发布于 2012-07-06 05:28:51
参数input_date_formats和input_time_formats需要是列表或元组,而不是字符串(请参阅文档中的SplitDateTimeField )。错误可能是因为它现在正在迭代字符,而不是多种输入格式。
尝试将代码更改为以下代码:
start = SplitDateTimeField(
input_date_formats=('%m/%d/%Y',),
input_time_formats=('%I:%M %p',),
initial= lambda: dt.datetime.now(),
required=True
)
end = SplitDateTimeField(
input_date_formats=('%m/%d/%Y',),
input_time_formats=('%I:%M %p',),
initial= lambda: dt.datetime.now() + dt.timedelta(days=30),
required=True
)https://stackoverflow.com/questions/11352599
复制相似问题