首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DJANGO simplejson

DJANGO simplejson
EN

Stack Overflow用户
提问于 2012-05-08 23:12:44
回答 2查看 1.7K关注 0票数 0

下午好,我有一个模型,它的类是这样的:

代码语言:javascript
复制
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脚本,以便将其绘制在图形中。序列化该数组的代码是什么?我希望我说得很清楚..提前感谢所有回复的人..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-09 01:21:59

关注@ninefingers的回复。我认为您的问题针对的是如何使转储的json字符串可用于jQuery插件。

代码语言:javascript
复制
# 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变量提供

代码语言:javascript
复制
# template.html

<html>
<body>
<script>
var NUM_JSON = {{num_json|safe}};
myScript.doSomething(NUM_JSON);
</script>
</body>
</html>

现在,您可以使用NUM_JSON变量调用常规JS。

票数 1
EN

Stack Overflow用户

发布于 2012-05-08 23:20:39

如果你想在模型中做到这一点,那么下面这样的代码将会起作用:

代码语言:javascript
复制
# 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视图,你可以这样做:

代码语言:javascript
复制
# 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中的模板中使用它-另一个答案向您展示了如何实现:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10501419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档