2015-08-31 8 views
0

Я написал приложение django для отображения некоторых данных, извлеченных из mongodb в html-шаблоне. Все позиции заказа Идентификаторы выбираются со статусом 'APPROVED'данные django не изменяются динамически

models.py:

from pymongo import MongoClient 

class GetNewOrders(object): 
    def __init__(self): 
     self.client = MongoClient('localhost',27017) 
     self.db = self.client['Flipkart'] 
     self.sale_order = list(self.db['sale_order'].find({'status':'APPROVED'})) 

    def getOrderItemId(self): 
     oiids = [] 
     for each in self.sale_order: 
      oiids.append(each['orderItemId']) 
     return oiids 

views.py:

from django.shortcuts import render 
from django.http import HttpResponse 
from orders.models import GetNewOrders 

no = GetNewOrders() 
oiids_new = no.getOrderItemId() 

def orders(request): 
    context_dict = {'oiids_new':oiids_new} 
    return render(request, 'orders/orders.html', context_dict) 

я использовал цикл в моем HTML файл для отображения этих данных. Если я изменяю статус документа на 'APPROVED', он не отражается в моем html, пока я не перезапущу сервер. Как показать измененные данные в html без перезапуска сервера django?

ответ

5

потому что GetNewOrders находится на уровне модуля он выполняется только один раз - вам нужно переместить его в тело функции:

def orders(request): 
    no = GetNewOrders() 
    oiids_new = no.getOrderItemId() 

    context_dict = {'oiids_new':oiids_new} 
    return render(request, 'orders/orders.html', context_dict) 
Смежные вопросы