53👍
I had the same error, and i did this and it worked.
Change:
username = request.POST['username']
password = request.POST['password']
to:
username = request.POST.get('username')
password = request.POST.get('password')
The above handles both the POST and GET methods that may result.
I hope this helped.
3👍
When a request resolves to a view that’s wrapped with the @login_required
decorator, the request is redirected to the specified URL if the user is not logged in. So attempting to resolve your main_page
view while not logged in will cause the user’s browser to issue a GET
request to /login/
. However, the view that handles that URL assumes a POST
request:
username = request.POST['username']
password = request.POST['password']
The usual approach would be to follow the general pattern for using a form in a view:
https://docs.djangoproject.com/en/dev/topics/forms/#using-a-form-in-a-view
Specifically, check the request.method
attribute so you can behave appropriately on a GET
request and render the form. Or use the built-in views, they’re pretty easy to work with.
- Self.model() in django custom UserManager
- Model limit_choices_to={'user': user}
- How do I write a single-file Django application?
- Determine empty template variable in Django
- I get an error when return a queryset objects: Cannot resolve expression type, unknown output_field
2👍
I was able to suppress error by following @Emack333 but then, the code on views.py was not working and then upon close inspection, I’ve found that error was not on view file, rather it was on HTML side.
This error got generated because there was a mismatch of name attribute on the HTML input tag and in your case, it was name attr is missing.
<input type = "text" id = "username" placeholder = "Username" name="username">
1👍
The real issue is the forms within your template.
You need to use the name=
attribute to assign the name of the key instead of the id=
attribute.
I just solved this for my own project and realized this was the culprit.
- Auto-creating related objects on model creation in Django
- Python: How can I override one module in a package with a modified version that lives outside the package?
- Django admin list_filter – filter field by is empty (None or empty string "")
0👍
This could also happen if you try to get a value with wrong or non existing key. It’s worthy if you check your key name.