This is a long shot, but I thought I would share a link to my source code hosted on GitHub with a requirements.txt included. If any of you would like to test this out yourself, I am accepting pull requests. Here it is: https://github.com/Angeles4four/CC_Redact
On Thursday, March 7, 2019 at 4:03:37 PM UTC-5, drone4four wrote:
I am taking a course on Udemy and the instructor doesn't include a method attribute in the form tag. But as you suggested, Deepak, I went ahead and added method="get" to my form tag in my home.html template. So line 7 now reads: <form action="{% url 'home' %}" method="get">
I am still encountering the MultiValueDictKeyError.
Here is the traceback again:
MultiValueDictKeyError at /
'ccEntry'
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 2.0.2
Exception Type: MultiValueDictKeyError
Exception Value:
'ccEntry'
Exception Location: /home/<user>/.local/lib/
python3.7/site-packages/ django/utils/datastructures.py in __getitem__, line 79 Python Executable: /usr/sbin/python
Python Version: 3.7.2
Python Path:
['/home/<user>/dev/projects/
python/2018-and-2019/cel2fah- original_with_CC-redact- project-_Django202/first_ project_attempt', '/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-
dynload', '/home/<user>/.local/lib/
python3.7/site-packages', '/usr/lib/python3.7/site-
packages', '/usr/lib/python3.7/site-
packages/setuptools-40.6.2- py3.7.egg'] Server time: Thu, 7 Mar 2019 20:11:44 +0000
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 2.0.2
Python Version: 3.7.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.
SecurityMiddleware', 'django.contrib.sessions.
middleware.SessionMiddleware', 'django.middleware.common.
CommonMiddleware', 'django.middleware.csrf.
CsrfViewMiddleware', 'django.contrib.auth.
middleware. AuthenticationMiddleware', 'django.contrib.messages.
middleware.MessageMiddleware', 'django.middleware.
clickjacking. XFrameOptionsMiddleware'] Traceback:
File "/home/<user>/.local/lib/
python3.7/site-packages/ django/utils/datastructures. py" in __getitem__ 77. list_ = super().__getitem__(key)
During handling of the above exception ('ccEntry'), another exception occurred:
File "/home/<user>/.local/lib/
python3.7/site-packages/ django/core/handlers/ exception.py" in inner 35. response = get_response(request)
File "/home/<user>/.local/lib/
python3.7/site-packages/ django/core/handlers/base.py" in _get_response 128. response = self.process_exception_by_
middleware(e, request) File "/home/<user>/.local/lib/
python3.7/site-packages/ django/core/handlers/base.py" in _get_response 126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/<user>/dev/projects/
python/2018-and-2019/cel2fah- original_with_CC-redact- project-_Django202/first_ project_attempt/first_project_ attempt/views.py" in home 5. number = request.GET['ccEntry']
File "/home/<user>/.local/lib/
python3.7/site-packages/ django/utils/datastructures. py" in __getitem__ 79. raise MultiValueDictKeyError(key)
Exception Type: MultiValueDictKeyError at /
Exception Value: 'ccEntry'
Request information
USER
AnonymousUser
GET
No GET data
POST
No POST data
FILES
No FILES data
On Thursday, March 7, 2019 at 2:50:00 PM UTC-5, Deepak Chhitarka wrote:In your home.html template, you forgot to write method="get" . Which I think is causing the problem here.On Fri 8 Mar, 2019, 12:03 AM Matthew Pava, <Matthe...@iss.com> wrote:Please just paste the error in the email message. The error message that you have mentions a 'method' object, which is not present in the code that you have sent to us. That would be where the problem is.
From: django...@googlegroups.com [mailto:django...@
googlegroups.com ] On Behalf Of drone4four
Sent: Thursday, March 7, 2019 11:29 AM
To: Django users
Subject: Re: Django credit card redaction app - - MultiValueDictKeyError
Thanks, Sam for the help.
You wrote:
I would be careful how you pass the data on get, somewhere in your front end code you are probably not passing the data through as you expected. Instead of using .GET, use .GET.get to get your data. This will either return the value you want, or none.
I looked up GET.get Django and found an SO post titled, "Django request.GET" which has quite a few up votes. Based on that SO answer, In my views.py I changed the line (where I declare the number variable) from `number = request.GET['ccEntry']` to `number = request.GET.get['ccEntry', None]`
That gives a different error (a type error this time): https://pastebin.com/L81LVtzi
You also mentioned my front end. I had included the template in my original post. I have since refined it so it is more readable. Here is my improved home.html template:
<html>
<head>
<title> Search </title>
</head>
<body>
<center>
<form action="{% url 'home' %}">
<div>
<h3>Enter your fake Chuckee Cheese Neptune credit card number!</h3>
<input type="number" id="number" name="ccEntry" required placeholder="
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/b5ca0c48-0728-4b4c-8e02-880418d2b442%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment