I got the solution from Daniel Rossman on SO:

Firstly, use `render_to_string` to get the template fragment as an HTML 
string. Secondy, serialize your object as a Python dict, not JSON. Then you 
can convert the whole lot to JSON in one go.

    html = render_to_string("page_content.html", {'form': form}, 
context_instance=RequestContext(request))
    param = serializers.serialize('python', object)
    data = json.dumps({'html': html, 'param': param})
    return StreamingHttpResponse(data, content_type="application/json")

Now your JS can parse the JSON and access the `html` and `param` values.

On Thursday, June 12, 2014 2:30:58 PM UTC-4, Max Demars wrote:
>
> I would like my view to return the page content and some parameters that I 
> would like to use in the Ext.Ajax.request success function.
>
> views.py
>
>     def importFile(request):
>         form = ImportVectorForm()
>         html_response = render_to_response("page_content.html", {'form': 
> form, 'folder':folder, 
> 'nodes':nodes},context_instance=RequestContext(request))
>         if request.POST:
>             form = ImportVectorForm(request.POST, request.FILES)
>             if form.is_valid():
>                 ## here im dealing with the form...
>                 object = MyObject.objects.create()
>                 html_response = render_to_response("page_content.html", 
> {'form': form},context_instance=RequestContext(request))
>                 json_param = serializers.serialize('json', object)
>                 return StreamingHttpResponse(html_response, 
> content_type="plain/text")
>
>             else:
>                 html_response = render_to_response("page_content.html", 
> {'form': form},context_instance=RequestContext(request))
>
>         return StreamingHttpResponse(html_response, 
> content_type="plain/text")
>
>
> ajax.js:
>
>       importFileAjax = function(node_id){
>         Ext.Ajax.request({
>           method: "GET",
>           form: "importForm",
>           url: "/basqui/file/import/" + node_id + "/",
>           success: function(r){
>                       // here I would like to access the model instance 
> created properties
>                       Ext.get('table').update(r.responseText); //this 
> update the page content
>                    }
>         });
>       }
>
> I would like to pass both html_response and json_param to Ajax. The fist 
> to update a div and the second to access its properties.
>
> What is the right way of doing that?
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/3ef5bd5f-4af6-4e7e-9275-28537dd5bd11%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to