Monday, June 4, 2012

Re: Django session and Dojo dnd.

Hi Hendrik,

I forgot to mention in my previous message that the debug shows the following:

code 400, message Bad request syntax ("\x16\x03\x01\x00\x8b\x01\x00\x00\x87\x03\x01O\xcc\xd8\xc0\x18hZ\x7f\xa3h\xb9l\xaf\xdb\xfbp}(\xc1\xc6\xa5g\x18\xe5!\x87\xd4\xe2`_'\x90\x00\x00H\x00\xff\xc0")

Thank you!

    voss



On Saturday, June 2, 2012 8:46:38 AM UTC-5, henzk wrote:
Hi,

i haven't tested the code and never used dojo before, but sth. like
this should work:

var source1 = new dojo.dnd.Source("itemListNode");
var source2 = new dojo.dnd.Target("selectedListNode");
dojo.connect( source1, "onDndDrop",
    function(source, nodes, copy, target){
        //gather items and details
        var details = [];
        for( i=0; i < nodes.length; i++){
            var item = this.getItem(nodes[i].id);
            details.push(item.data);
        }
        //send details to server via AJAX POST request
        dojo.xhrPost({
            url: "/save_details/",
            content: {details: JSON.stringify(details)},
            // The success handler
            load: function(response) {
                 alert('ok');
            },
            // The error handler
            error: function() {
                 alert("error");
            }
        });
});

Explanation:

- changed 'item' to 'var item' ... without the 'var' item will be
global, which is probably not what you want.
- to get around making multiple requests to the server(one for each
dropped node), put the detail of each node in the details array.
- then json-encode and send this array to your django view (assumed to
be at '/save_details/')
- in the view, access the list as
json.loads(request.POST.get('details', '[]')) and place it into
request.session

As mentioned, the code is completely untested.

Good luck!

Yours,

Hendrik Speidel

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/zZ3H9Me5W7AJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment