【问题标题】:Not Getting the object in template Django没有在模板Django中获取对象
【发布时间】:2014-04-28 15:47:08
【问题描述】:

我收到json不可序列化的错误。

views.py

def get_post(request):
    if request.is_ajax():
        if request.method=="GET":
            craves = CraveData.objects.filter(person=request.user)
            print craves
            response = json.dumps({"craves":craves})
            return HttpResponse(response,mimetype="application/json")

渴望.html

function next(){
                    alert("you in")
                $.ajax({
                                url: "/crave/get_post/",
                                type: "GET",
                                data: "",
                                success: function(response){
                                    alert('success');
                                    alert(response.craves)
                                    //$('.ajaxProgress').html(response.HTML_USER);
                                    $('.ajaxProgress').html(response.craves);                                   
                                },
                                error:function(){
                                    alert('some error');
                                }
                }); 
            }

我收到TypeError: [<CraveData: Gaurav>, <CraveData: Rahul>] is not JSON serializable

但是当我试图得到时

craves = len(CraveData.objects.filter(person=request.user))

我得到了价值。请帮我在模板中获取对象。

【问题讨论】:

    标签: python ajax json django


    【解决方案1】:

    使用正确的serializer:

    from django.core import serializers
    
    def get_post(request):
        if request.is_ajax():
            if request.method=="GET":
                craves = CraveData.objects.filter(person=request.user)
                response = serializers.serialize('json', craves)
                return HttpResponse(response, mimetype="application/json")
    

    【讨论】:

    • 干草得到 [{"pk":1,"model":"crave.cravedata","fields":{"date":"2014-04-28T13:36:07.038Z", "person":1,"post":"Gaurav"}},{"pk":2,"model":"crave.cravedata","fields":{"date":"2014-04-28T13:46 :33.552Z","person":1,"post":"Rahul"}}] 所有这些数据。但我只想发布显示。我用 var p = JSON.stringify(response);
    猜你喜欢
    • 2019-09-02
    • 2019-08-13
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 2017-06-27
    • 2011-03-24
    相关资源
    最近更新 更多