2016-07-26 88 views
1

使用Django的模板标签串,DateTimeField字段看起来就像这样:Django的:DateTimeField字段使用本地化

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

问题是,我的网站有一个无限滚动和新的数据来通过AJAX,所以我可以为此使用Django的模板标签。以此来获取日期:

str(self.date_created) 

我得到的是这样的:

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

看起来并不好......有什么办法转换的DateTimeField字段值使用Django的默认格式?谢谢。

回答

2

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

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

谢谢!我用了两个答案,但你的是我正在寻找的,但另一个也有帮助。 – Antoni4040

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" }} 
+0

谢谢格式化!但是,您应该编辑答案,它是|日期不是|数据... – Antoni4040