2016-05-12 50 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