[Django]-Django – getlist()

102👍

✅

jQuery POST’s arrays with the [] suffix because PHP and some web frameworks understand that convention, and re-build the array on the server-side for you automatically. Django doesn’t work that way, but you should be able to access the data via:

ukeys = request.POST.getlist('ukeys[]')

1👍

I encountered this same issue — Jakub is right, the [] is useful for other web frameworks, but the behavior of jQuery can be changed (I didn’t like the varname[] format).

The $.param function is specifically what does this and it also accepts a parameter to override this behavior.

Change Globally:

// put this early in your JS, preferably the first one imported after jQuery
//     or before the document.ready function if using inline js
jQuery.ajaxSettings.traditional = true; 

Change on a per-call basis:

 $.param(data, true);  // true sets traditional mode
// for example:
 $.post('/some/url/', $.param(data, true)).done(callback)

Or of course you can use the [] on the server as Jakub mentions.

Leave a comment