Django:使用L10N将DateTimeField转换为字符串

时间:2016-07-26 09:28:35

标签: python django datetime datetime-format

使用Django模板标签,DateTimeField将如下所示:

July 25, 2016, 7:11 a.m.

问题是,我的网站有无限滚动,新数据通过AJAX传播,所以我不能使用Django的模板标签。使用它来获取日期:

str(self.date_created)

我得到这样的东西:

2016-07-23 14:10:01.531736+00:00

哪个看起来不太好...有没有办法使用Django的默认格式转换DateTimeField值?谢谢。

2 个答案:

答案 0 :(得分:2)

实际上你仍然可以使用Django的内置date过滤器来获取ajax响应。在你的视图中使用render_to_string然后发送为json(假设你的js期望json)。

import json
from django.template.loader import render_to_string

class YourAjaxResponseView(View):
    template_name = 'your_ajax_response_template.html'

    # I ASSUMED IT'S A GET REQUEST
    def get(self, request, *args, **kwargs):
        data = dict()
        data["response"] = render_to_string(
           self.template_name,
           {
            "your_date": your_date
           },
           context_instance=RequestContext(request)
        )
       return HttpResponse(
         json.dumps(data),
         content_type="application/json",
         status=200
      )

您的模板可以就是这个

 # your_ajax_response_template.html
 {{ your_date|date:"YOUR_FORMAT" }}

答案 1 :(得分:2)

您可以使用self.date_created.strftime("%B %d, %Y, %I:%M %p")格式化后端字段,也可以在前端格式化

var dateCreated = new Date(item.date_created);
dateCreated.toLocaleString()