【问题标题】:using django paypal getting error ('False', 'buy') KeyError at /使用 django paypal 得到错误 ('False', 'buy') KeyError at /
【发布时间】:2015-04-28 17:50:20
【问题描述】:

我认为我收到此错误是因为我正在向上下文变量添加第二个键,而 django paypal 不喜欢它。但我真的不知道说实话。 当我没有在上下文变量中包含第二个键并且只留下 {'form':form} 就像在文档中一样时,它呈现正常且没有错误。但我真的需要模板中的“文档”对象,不知道该怎么做。 抱歉,我没有添加模板。我似乎永远无法将它们粘贴到这里。

非常感谢您对问题的任何了解。

这里是风景

def video(request, document_id): 
document = Document.objects.get(id=document_id)

if request.user.id:
    d1 =datetime.datetime.now().time()
    t=d1.strftime('%y%m%d%h%m%s')
    pp_price = str(document.price)
    # What you want the button to do.
    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": pp_price + ".00",
        "item_number1":document_id,
        "item_number2":request.user.id,
        "item_name": document.name,
        "invoice": document.name+t,
        "notify_url": "http://blabla.com/paid/" + reverse('paypal-ipn'),
        "return_url": "http://blabla.com/myvideos/",
        "cancel_return": "http://blabla.com/video/"+document_id+"/",
    }
    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {"form": form, "document":document }
    return render(request, "video.html", context)
else:
    return render_to_response('video.html',{'document': document},
                              context_instance=RequestContext(request))

抛出的异常...

KeyError at /video/106/
('False', 'buy')
Request Method: GET
Request URL:    http://blabla.com/video/106/
Django Version: 1.6.4
Exception Type: KeyError
Exception Value:    
('False', 'buy')
Exception Location: /home/me/.local/lib/python2.7/site-packages/paypal/standard/forms.py in get_image, line 143
Python Executable:  /usr/local/bin/python
Python Version: 2.7.9
Python Path:    
['/home/me/webapps/blabla',
 '/home/me/webapps/blabla/src',
 '/home/me/webapps/blabla/lib/python2.7',
 '/home/me/lib/python2.7/pip-1.5.4-py2.7.egg',
 '/home/me/lib/python2.7',
 '/usr/local/lib/python27.zip',
 '/usr/local/lib/python2.7',
 '/usr/local/lib/python2.7/plat-linux2',
 '/usr/local/lib/python2.7/lib-tk',
 '/usr/local/lib/python2.7/lib-old',
 '/usr/local/lib/python2.7/lib-dynload',
 '/home/me/.local/lib/python2.7/site-packages',
 '/usr/local/lib/python2.7/site-packages',
 '/usr/local/lib/python2.7/site-packages/PIL']
Server time:    Tue, 28 Apr 2015 17:19:04 +0000
Traceback Switch to copy-and-paste view

/home/me/.local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
                    response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/home/me/webapps/blabla/src/signups/views.py in video
        return render(request, "video.html", context) ...
▶ Local vars
/home/me/.local/lib/python2.7/site-packages/django/shortcuts/__init__.py in render
    return HttpResponse(loader.render_to_string(*args, **kwargs),

【问题讨论】:

    标签: python django python-2.7 paypal keyerror


    【解决方案1】:

    这是一个有点难以追踪的错误,但它实际上与您在此处显示的代码无关。看来您的其中一项设置不正确。从外观上看,在您的settings.py 中,您有:

    PAYPAL_TEST = 'True'
    

    事实上,你应该有:

    PAYPAL_TEST = True
    

    这个变量需要是一个布尔值,而不是一个字符串。

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 2012-10-17
      • 2019-06-04
      • 2018-05-11
      • 2014-08-09
      • 2018-04-21
      • 2021-08-07
      • 2021-05-10
      相关资源
      最近更新 更多