On Wed, Feb 2, 2011 at 2:27 PM, Burhan <burhan.kha...@gmail.com> wrote:
> Hello, I have a strange problem which I am unable to figure out.
>
> I have a method that is POSTed some information from a third-party
> payment gateway. The request is sent to payment-result.jsp?
> PaymentID=342 (where 342 is any integer).
>
> My URL pattern is:
>
> (r'^payment-result.jsp$', result)
>
> The method is:
>
> @crsf_exempt
> def result(request):
>  print(request.POST)
>  paymentID = request.POST['paymentid']
>  paymentID = request.GET['paymentid']
>
>  # various other calls, which redirect to a template
>
> Now the problem is in my server log, I can see that POST is being
> populated correctly:
>
> #|2011-02-02T16:23:10.390+0300|INFO|glassfish3.0.1|
> javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|
> _ThreadID=23;_ThreadName=Thread-1;|{u'result': [u'NOT CAPTURED'],
> u'paymentid': [u'3104447221610330'], u'responsecode': [u'05'],
> u'postdate': [u'0203'], u'udf4': [u''], u'auth': [u'000000'],
> u'tranid': [u'883532231610330'], u'ref': [u'103316920306'], u'udf5':
> [u''], u'trackid': [u'20110202162240167'], u'udf1': [u''], u'udf3':
> [u''], u'udf2': [u'']}
> |#]
>
> However, when I try to render a template, I get the following:
>
> Traceback:
> File "C:\glassfishv3\glassfish\jython\Lib\site-packages\django\core
> \handlers\base.py" in get_response
>  100.                     response = callback(request,
> *callback_args, **callback_kwargs)
> File "C:\aubk\eschool\views.py" in knetResult
>  650.     k_paymentid = request.POST['paymentid']
> File "C:\glassfishv3\glassfish\jython\Lib\site-packages\django\utils
> \datastructures.py" in __getitem__
>  235.             raise MultiValueDictKeyError("Key %r not found in
> %r" % (key, self))
>
> Exception Type: MultiValueDictKeyError at /en/payment-error.jsp
> Exception Value: "Key 'paymentid' not found in <QueryDict: {}>"
>
> As you can see <QueryDict: {}> is empty ... which it shouldn't be as
> information has been posted to the system.
>

The traceback indicates that this has nothing to do with template
rendering; the exception happens in your view code. As you point out,
your server logs indicate that request.POST is properly populated.
However, in the tiny snippet of view code that you have posted, we
have this:

> @crsf_exempt
> def result(request):
>  print(request.POST)
>  paymentID = request.POST['paymentid']
>  paymentID = request.GET['paymentid']

As you have shown, "request.POST['paymentid']" should succeed. You've
shown nothing that would indicate that "request.GET['paymentid']"
would also succeed. Are you not just trying to get the value out of
the wrong MultiDict?

Cheers

Tom

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to