1👍
Don’t guess. Output the errors in the template, then you’ll know why it is not valid.
{{ form.errors }}
Edit You have not put any name
attributes in your form field elements. Browsers only send data on a form submit if the field has a name, as that’s what the data is associated with.
You really should be using the Django form to output the fields anyway, rather than creating the HTML manually.
Source:stackexchange.com