django将信息动态加载到模板中



所以我想知道实现以下目标的最佳实践:

def execute_expensive_operation(obj):
    #create instance of a model storing the relevant info to load the JSON into the template
    #includea `task` field that stores the name of the asynchronous task (obj.pk) so that the JSON can be loaded if the name of the task is known
def test_view(request):
    list_of_objects = [...] #will actually be dynamically loaded from the request
    task_dict = {}
    for obj in list_of_objects:
        task_dict[obj.pk] = execute_expensive_operation(obj).delay(obj.pk) #this could take a while, put it on queue (using celery)
    context = {"tasks":task_dict}
    return render_to_response("template.html",context)

"template.html"将加载与表中一行中的每个obj相关的JSON

如上所述,task_dict实际上将填充AsyncResult对象,而不是JSON。我想做的是,一旦与任何行相关的异步任务完成,就动态加载该行。

注意:

我为不具体的方法道歉,这不是为了任何具体的事情,而是为了我必须在各种不同的地方处理的一般情况。如果有任何遗漏的信息,请让我知道,以便我可以将其包括在内。

以下是开始的要点。

视图.py

def test_view(request):
    # Normal web request processing. 
    # Return `json` dictionary

template.html

//making periodic ajax request. 
(function worker() {
$.ajax({
url: 'paht/to/url', 
success: function(data) {
  $('.result').html(data);
},
complete: function() {
  // Schedule the next request when the current one's complete
  setTimeout(worker, 5000);
}
});
})();

还可以查看一个简单的ajax教程,使定期的ajax请求

相关内容

  • 没有找到相关文章

最新更新