2016-05-12 33 views
1

问我怎样才能得到Redis的JSON数据在我的模板中显示?出于某种原因,我无法让它工作。任何帮助将不胜感激..如何查看redis的JSON数据在我的模板视图蟒蛇的Django

这里是我到目前为止我的JSON数据是越来越保存到正确的Redis,但我仍然无法弄清楚如何显示它在我的模板。所以对于obj.customer_name我希望它来自redis并遍历我的模板的json数据。

views.py

def home(request): 
    """Renders the home page.""" 
    assert isinstance(request, HttpRequest) 
    #obj = Customer.objects.all() 
    cust = Customer.objects.all() 
    da = serializers.serialize('json', cust, fields=('customer_id', 'customer_name')) 
    r_conn = redis.StrictRedis(host='172.16.1.98', port=6379, db=1) 
    r_conn.set('dimcert_cust', da) 
    cust_cache = r_conn.get('dimcert_cust') 
    obj = json.load(cust_cache) 


    return render(
     request, 
     'app/index.html', 
     { 
      'title':'Home Page', 
      'year':datetime.now().year, 
      'obj': obj, 
     } 
    ) 

home.html的模板

{% extends "app/layout.html" %} 

{% block content %} 

<div class="jumbotron"> 
    <h1>Customers</h1> 
</div> 

<div class="row"> 


    <div style="width: 40%; float:left"> 
     {% for obj in obj.all %} 
      <h3> {{obj.customer_name}} </h3> 
     {% endfor %} 

    </div>  
</div> 

{% endblock %} 

这是我model.py与Customer类

from django.db import models 
import json 

class Customer(models.Model): 
    objects = models.Manager() 
    customer_id = models.IntegerField() 
    customer_name = models.CharField(max_length=255) 
    created_at = models.DateField 
    updated_at = models.DateField 

回答

2

您的JSON与转换成字典通过做obj = json.load(cust_cache)因此,在你的模板中,你应该有这样的事情:

{% for key, values in obj.items %} 

    <h3>{{ key }}</h3> 
    {{ value }} 
{% endfor %} 

作为脚注,我可以指出redis hashes是存储数据的更好方法。

+0

谢谢! @ e4c5 – Snowman08

+0

很高兴得到了帮助。 – e4c5