0

我想我收到了这个错误,因为我在上下文变量中添加了第二个键,而 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),
4

1 回答 1

0

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

PAYPAL_TEST = 'True'

事实上,你应该有:

PAYPAL_TEST = True

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

于 2015-04-28T18:30:30.467 回答