Django缓存2个不同版本的URL(JSON和HTML)

时间:2014-09-08 21:26:56

标签: python django caching

我有一个网址,请说/ users / comments /。可以使用HTML或使用JSON通过ajax访问此页面。

我想缓存两个版本的页面。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我没有找到一个简单的方法来做到这一点。但是这是手动缓存并返回网站的JSON副本的代码,如果GET params?type = json否则将返回html。

观点:

if request.GET.get('type', None) == 'json' and not request.user.is_authenticated():
    #check cache
    cached_page = cache.get(request.get_full_path())
    if cached_page:
        return HttpResponse(json.dumps(cached_page), content_type="application/json")

在视图的底部:

if request.is_ajax():

    rendered = render_to_string('lootr/deal-item.html', params, context)

    if not request.user.is_authenticated():
        cache.set(request.get_full_path(), rendered, 60 * 30)

    return HttpResponse(json.dumps(rendered), content_type="application/json")