1

我们在 Django 中进行 AJAX 调用,其中用户输入日期和数字,AJAX 调用查找是否已经存在具有该数字和日期的文档。

该应用程序是国际化和本地化的。问题是如何将 AJAX 发送的日期解释为有效的 Python/Django 日期对象。当然,这必须使用当前用户的语言环境来完成。

我发现的一种解决方案不起作用: Django:如何在视图中获取格式日期?
get_format()返回一个字符串(在我们的例子中j-n-Y),但strftime()期望格式字符串为%j-%n-%Y.

为什么 Django 格式与格式不同stftime()让我印象深刻,仅供参考,我们目前使用的是 Django 1.5。

我认为问题在于,在我能找到的所有示例中,日期已经是日期对象,而 Python/Django 只是进行格式化。我们需要的是使用当前语言环境将字符串转换为日期,然后对其进行格式化。我认为这将是一个标准问题,但我找到并尝试过的所有可能的解决方案似乎都不起作用......

谢谢,
埃里克

4

3 回答 3

2

向 Django 提交票证给了我答案的线索。您可以通过将特定类型的数据传递给相应的字段并调用 to_python() 将其转换为对象。在我的情况下,它会是这样的:

from django.forms.fields import DateField

field = DateField()
value = request.GET.get('date', '')
formatted_datetime = field.to_python(value)

埃里克

于 2013-03-08T13:06:48.090 回答
0

在我看来,让用户从日历中选择日期,而不是键入其字符串表示形式,会让您的生活更轻松。这样你就知道你得到了什么。

于 2013-03-07T16:07:53.250 回答
0

如果您知道格式,那么您应该能够使用datetime.strptime.

已将它与 ajax 调用一起成功地用于代码中。

有关更多信息,请参见此处:http: //docs.python.org/2/library/datetime.html#strftime-strptime-behavior

于 2013-03-07T16:44:31.500 回答