2017-05-22 204 views
0

我已經實現了fetch_results功能,以便將新數據添加到django網站中的數據庫。每次刷新頁面時都會激活此功能。當新數據可用時自動刷新django表

views.py 

def fetch_results(): 
# global result 
documents = DRSDocument.objects.all() 

for doc in documents: 
    computed_image_path = os.path.join(WORKING_DIRECTORY, doc.uuid, 'process_result.jpg') 

    drs_status = doc.status 
    if os.path.isfile(computed_image_path): 

     if drs_status == 'Q': 

      doc.date_process_end = timezone.now() 
      doc.status = 'F' 
      doc.save() 
return render('list_admin.html', {'status': drs_status}) 

當圖像服務器os.path.isfile(computed_image_path)數據是可用的Django的網頁可用。

list_admin.html 

<script> 
function refresh() { 
$.ajax({ 
url: '{% url table_monitoring %}', 
success: function(data) { 
var dtr = $("#container2c", data); 
$('#container2c').html(dtr); 
     } 
    }); 
setTimeout("refresh()", 3000); 
} 

$(function(){ 
refresh(); 
}); 

</script> 

{% endblock %} 

{% block content %} 
<div id="container2c" align="center"> 
<BR> 
<BR> 
    {% if drs_images %} 
    <BR> 
    <form method="post" action="{% url 'retinal_drs_delete_multiple' %}"  style="height: 530px;overflow-y: scroll;width: 90%;"> 
     {% csrf_token %} 
     <table id="myTable" style="width:90%;font-style: normal;"> 
      <thead> 
      <tr style="font-style: italic;"> 
       <th><div class="th-inner"><IMG title="Click to select all" width=12px src="{% static 'images/red-delete-button.png' %}" onclick="return selectAllForDeletion();"></IMG></div></th> 
       <th><div class="th-inner">&nbsp;Image&nbsp;</div></th> 
       <th><div class="th-inner">&nbsp;#&nbsp;</div></th> 
      </tr> 
      </thead> 
     <tbody> 

      {% include 'list_admin_table.html' %} 

     </tbody> 
    </table> 
    <BR> 
    <BR> 
    <input type="submit" value="Delete selected"> 
    <BR> 

    </form> 

這裏是我的list_admin_table.html

list_admin_table.html 

{% for document in drs_images %} 
      <tr {% if document.completed %}style="color:white; font-weight:bold;"{% else %}style="color: black;"{% endif %}> 
       <td><INPUT type="checkbox" name="delete_{{ document.drs_image.uuid }}" id="id_delete_{{ document.drs_image.uuid }}" value="true"/></td> 
       <td><IMG WIDTH="22px" SRC="{% static 'images/' %}{{ document.drs_image.get_status_icon }}" title="{{ document.drs_image.get_status_display }}"> </td> 
       <td>{{ forloop.counter }}</td> 
      </tr> 

     {% endfor %} 

這裏是我的urls.py

urlpatterns = [ 
     url(r'^list/$', retinal_drs_views.list_admin, name='retinal_drs_list_admin') 
     url(r'^table-monitoring/$', retinal_drs_views.fetch_results, name="table_monitoring"), 
] 

我objectie是獲取結果定期(每10秒),如果它的回報是真的,自動刷新table id="myTable"

我一直在閱讀關於AJAX,Jquery,Websockets的信息......但是我對django和客戶端編程很陌生,所以我沒有得到任何有效的結果。

謝謝!

回答

0

我查過這個答案,基本上它也適用於你 here