danspants
danspants

Reputation: 3417

Dictionary Object confusion from jQuery to Django!

I'm attempting to send a dictionary from jQuery to Django using a getJSON call:

jQuery.getJSON(URL,JSONData,function(returnData){});

The JSONData object is formatted as follows:

JSONData = {
     year:2010101,
     name:"bob",

     data:{
          search:[jim,gordon],
          register:[jim],
          research:[dave],
          }
}

This is put together programmatically but looks fine.

Once passed to Django the "year" and "name" objects are as expected. The data object however contains the following keys/values - "search[0]":"jim", "search[1]":"gordon","register[0]":"jim","research[0]":"dave", rather than the expected "search":(array of data), "register":(array of data), "research":(array of data).

Similar things happen if I use objects in place of the arrays.

Is this an issue with Django's interpretation of the object?

Any idea how I might correct this...cleanly?

EDIT:

I have now simplified the data to make testing easier:

JSONData = { 
     year:2010101, 
     name:"bob", 
     search:[jim,gordon], 
     register:[jim], 
     research:[dave], 

} 

Upvotes: 1

Views: 898

Answers (1)

Bernhard Vallant
Bernhard Vallant

Reputation: 50776

request.GET is not an instance of a normal python dict, but of the django class QueryDict, that can deal with multiple values for one key. If you need multiple values for a key returned as a list you have to use getList!

EDIT: Also have a look at this jQuery parameter settings!

Upvotes: 4

Related Questions