我们正在Django中进行AJAX调用,用户输入日期和数字,如果已经存在具有该数字和日期的文档,则查找AJAX调用。
该应用程序已国际化并已本地化。问题是如何将AJAX发送的日期解释为有效的Python / Django日期对象。这必须使用当前用户区域设置来完成。
我找到的一个解决方案不起作用:
Django: how to get format date in views?
get_format()
返回一个字符串(在我们的示例中为j-n-Y
),但strftime()
需要格式字符串%j-%n-%Y
。
为什么Django格式与stftime()
格式有所不同,因为我们目前正在使用Django 1.5。
我认为问题在于,在我发现的所有示例中,日期都是日期对象,而Python / Django只是格式化。我们需要的是使用当前语言环境将字符串转换为日期,然后格式化它。我认为这将是一个标准问题,但我发现并尝试的所有可能的解决方案似乎都不起作用......
谢谢,
埃里克
答案 0 :(得分:2)
向Django提交一张票给了我一个答案的线索。 您可以通过将特定类型的数据传递到相应的字段并调用to_python()来将其转换为对象。在我的情况下,日期就是这样:
from django.forms.fields import DateField
field = DateField()
value = request.GET.get('date', '')
formatted_datetime = field.to_python(value)
埃里克
答案 1 :(得分:0)
对我而言,它会让您的生活更容易让用户从日历中选择日期,而不是键入其字符串表示。 这样你就可以准确地知道你得到了什么。
答案 2 :(得分:0)
如果你知道格式,那么你应该可以使用datetime.strptime
。
在代码中成功地与ajax调用一起使用它。
有关详细信息,请参阅此处:http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior