I have a suggestion. Instead of asking to upload a .zip, is it possible to specify the .shp in the upload, and then have the code upload the .shx, .prj and .dbf? I think this would be a little better, if it were possible.
I think providing both options would be ideal. If someone knows how to zip up their data then its a great asset and if they don't know how then providing the ability to upload each part of the shapefile is a must.
The latter will be a bit error prone and tedius, but with the nice django form validation it should be pretty easy for users to fumble through it.
I was more thinking that, as opposed to the user uploading each individual file, they only upload the .shp file, and then the code attempts to upload all the other files without the user having to do anything.