dur*_*ura 2 django ajax django-views
我正在监测不同位置的温度.我将数据存储在模型中并设置了我的views.py,但我想每隔5分钟刷新一次表.我是ajax和dajaxice的新手,如何编写函数以便在html中显示?这是我的views.py:
def temperature(request):
temperature_dict = {}
for filter_device in TemperatureDevices.objects.all():
get_objects = TemperatureData.objects.filter(Device=filter_device)
current_object = get_objects.latest('Date')
current_data = current_object.Data
temperature_dict[filter_device] = current_data
return render_to_response('temp.html', {'temperature': temperature_dict})
Run Code Online (Sandbox Code Playgroud)
至于我认为到目前为止我所理解的,这可能是我的ajax.py,我应该修改它以返回一个simplejson转储.如果我错了,请纠正我.这是我的temp.html:
<table id="tval"><tr>
{% for label, value in temperature.items %}
<td>{{ label }}</td>
<td>{{ value }}</td>
{% endfor %}
</tr></table>
Run Code Online (Sandbox Code Playgroud)
这是我被卡住的地方.我怎么写这个,以便我的回调刷新表?
小智 6
使用类似这样的东西:
from django.template.loader import render_to_string
from django.utils import simplejson
from dajaxice.core import dajaxice_functions
def temperature(request):
temperature_dict = {}
for filter_device in TemperatureDevices.objects.all():
get_objects = TemperatureData.objects.filter(Device=filter_device)
current_object = get_objects.latest('Date')
current_data = current_object.Data
temperature_dict[filter_device] = current_data
table = render_to_string('temp.html', {'temperature': temperature_dict})
return simplejson.dumps({'table':table})
dajaxice_functions.register(temperature)
Run Code Online (Sandbox Code Playgroud)
作为JS回调,将'table'分配给你的html容器......(这只是一个例子):
function my_callback(data){
if(data!=Dajaxice.EXCEPTION){
document.getElementById('your_table_container_id').innerHTML = data.table;
}
else{
alert('Error');
}
}
Run Code Online (Sandbox Code Playgroud)
希望这对你有所帮助.
| 归档时间: |
|
| 查看次数: |
2001 次 |
| 最近记录: |