繁体   English   中英

QuerySet不是JSON Serializable Django

[英]QuerySet is not JSON Serializable Django

新手编程在这里。 我有一个有很多行的模型,我想将每一行传递给javascript。

第一次尝试:

Views.py

events = Events.objects.filter(user_id=user_id) // filter by user_id
context = {
            "email": request.user.email,
            "login": True,
            "objects": events,
        }
return render(request, 'fullcalendar/index.html', context)

Events是表的名称,我将每行存储在events 将其传递到称为context的字典context ,然后传递给我的模板。 然后从我的模板我能够做到这样的事情:

{% for object in objects %}
    <p>event.column_name</p>
{% endfor %}

这样可以正常工作,但我不能在javascript部分那样做。

{% for object in objects %}
    var date = object.date // assuming object has a column named date
{% endfor %}

第二次尝试

所以我做了一些研究并决定使用json。

在Views.py中,我做了以下更改:

return render(request, 'fullcalendar/index.html', {"obj_as_json": simplejson.dumps(context)})

从此我希望这样做:

var objects = {{ obj_as_json }}

for object in objects 
    //Do some stuff

但我得到的错误QuerySet is not JSON Serializable Django 所以我查找了如何序列化对象并进行了以下更改:

data = serializers.serialize('json', events.objects.all())

但我得到以下错误: 'QuerySet' object has no attribute 'objects'

男人,theres必须更容易做我想做的事情。 有任何想法吗?

试试这个:

data = serializers.serialize('json', events)

您收到的错误消息告诉您events已经是QuerySet,没有理由尝试使用它做更多的事情。

您还可以重新访问之前的尝试:

{% for object in objects %}
    var date = object.date // assuming object has a column named date
{% endfor %}

您需要实际使用Django object如下所示:

{% for object in objects %}
    var date = {{ object.date }}
{% endfor %}

object之前执行此操作的方式将简单地undefined并且您将获得错误cannot read property date of undefined

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM