Django request.POST does not contain the name of the button that submitted the form
Don't forget to add the name and value parameters to your "button" or "input type=submit" fields of the form. I've had the same problem once and it drove me crazy.
In short, as request.POST contains a dict, you need a key and a value. The key corresponds to the name parameter of your button, and the dict's value to the button's value.
<button type="submit" value="preview">Preview</button>
won't be reflected in request.POST (there's no key for the POST dictionary!), whereas
<button type="submit" value="preview" name="preview">Preview</button>
will have a key "preview" with value "preview".
For some reason, in Chrome, when I had two buttons using <input/>
tags, it would actually treat the button I didn't click as an input. That way, when I tested something like 'sendPaperButton' in request.POST
, it would return the opposite of what I wanted.
I changed these to <button></button>
tags and it worked fine.