0

コンテキスト変数に2番目のキーを追加していて、django paypalが気に入らないため、このエラーが発生していると思います。でも正直言ってよくわからない。コンテキスト変数に 2 番目のキーを含めず、ドキュメントのように {'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

これは追跡するのが少し不明瞭なエラーですが、実際には、ここに示すコードとは何の関係もありません。設定の 1 つが不適切に設定されているようです。見た目から、 には次のsettings.pyものがあります。

PAYPAL_TEST = 'True'

実際には、次のものが必要です。

PAYPAL_TEST = True

この変数は、文字列ではなくブール値である必要があります。

于 2015-04-28T18:30:30.467 に答える