在 Django 中,我有一个使用 SplitDateTimeField 的表单,该表单设置为具有如下所示的初始值。当尝试查看包含表单的模板时,我收到 ValueError:“strftime 格式以原始 % 结尾。”
# 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/
非常感谢任何指导。谢谢
最佳答案
参数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
)
关于python - Django-值错误: "strftime format ends with raw %" when DATE_INPUT_FORMATS and TIME_INPUT_FORMATS are set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11352599/