下午好,我有一个模型,它的类是这样的:
class Reportage:
def get_num(self):
end_date = self.date.end_date
start_date = self.date.start_date
duration = time.mktime(end_date.timetuple()) - time.mktime(start_date.timetuple())
delta_t = duration / 60
num = []
for t in range(0,duration,delta_t):
start = t + start_date
end = datetime.timedelta(0,t+delta_t) + start_date
n_num = self.get_num_in_interval(start,end)
num.append([t, n_num])
return num我想在views.py中使用simplejson序列化数组num [],以便在瞬间将此数组传递给jquery脚本,以便将其绘制在图形中。序列化该数组的代码是什么?我希望我说得很清楚..提前感谢所有回复的人..
发布于 2012-05-09 01:21:59
关注@ninefingers的回复。我认为您的问题针对的是如何使转储的json字符串可用于jQuery插件。
# views.py
def my_view(request):
# do stuff
num = reportage_instance.get_num()
num_json = simplejson.dumps(num)
return render(request, 'template.html', {
'num_json': num_json,
})在模板中,将json obj作为Javascript变量提供
# template.html
<html>
<body>
<script>
var NUM_JSON = {{num_json|safe}};
myScript.doSomething(NUM_JSON);
</script>
</body>
</html>现在,您可以使用NUM_JSON变量调用常规JS。
发布于 2012-05-08 23:20:39
如果你想在模型中做到这一点,那么下面这样的代码将会起作用:
# if this were a models.py file:
import simplejson
# other django imports:
class SomeModel(models.Model):
property = models.SomeField()...
def some_function(self):
num = []
# full num
simplejson.dumps(num)这会将num转储为json的字符串表示形式,然后您可以返回该字符串,或者将其写入文件,等等。
在视图中你有一个选择--但是如果你的视图是一个返回一些json进行处理的ajax视图,你可以这样做:
# views.py
# ...
def my_ajax_call(request, model_pk):
try:
mymodel = SomeModel.get(pk=model_pk)
except SomeModel.NotFoundException as e:
return HttpResonse("Unknown model", status=404)
else:
return HttpResponse(mymodel.some_function()) # returns simplejson.dumps(num)然后可以在Javascript中的模板中使用它-另一个答案向您展示了如何实现:)
https://stackoverflow.com/questions/10501419
复制相似问题