Django-Paypal
ライブラリを使用して、自分のサイトでPaypal支払いを使用しています。
example に続いて、Paypal_dict
を設定し、フォームを追加しました。
Paypal_dict = {
"business": settings.Paypal_RECEIVER_EMAIL,
"amount": "10000000.00",
"item_name": "name of the item",
"invoice": "unique-invoice-id",
"notify_url": "https://www.example.com" + reverse('Paypal-ipn'),
"return_url": "https://www.example.com/your-return-location/",
"cancel_return": "https://www.example.com/your-cancel-location/",
}
ただし、エラーglobal name 'reverse' is not defined
を使用していますPython 2.7.9、何が起こっているのですか?
関数reverse
をインポートする必要があります。
from Django.core.urlresolvers import reverse
あなたはそれについてもっと読むことができます ここ 。これはDjangoに固有ですが、とにかくURLを作成しようとしているように見えるので、おそらくそれが必要です。
For Django> 2.0
from Django.urls import reverse
django2.0で:
from Django.urls import reverse
reverse
はPythonの組み込み関数ではありません。おそらく、それは逆ルーティング(名前からURLパスを取得する)を行うためのいくつかのWebフレームワークの関数です。 notify_url
は、Paypalが通知を送信するアプリケーションのURLである必要があります。
Pythonには組み込み関数reverse
はありません。 (reversed
がありますが、それがあなたの望むものではないかと思います。)
Djangoにはisa reverse
関数があります。ただし、Djangoビューなどとしてロードされるコードに組み込まれているのはDjangoです。このコードを他の方法でインポートまたは実行すると、 tが存在します。
したがって、おそらく、手順の早い段階で何か問題が発生し、実際にはビューを作成していません。 (Django-Paypalの説明は、経験豊富なDjango開発者;基本的なDjangoの概念を理解していない場合は、おそらく作業を行う チュートリアル 最初に。)
Paypal-ipnのURLは、おそらくDjango-PaypalのURLで定義されています。 Djangoのリバースをインポートすることでこの問題は解決すると思います。
from Django.core.urlresolvers import reverse
この解決策に従って「リバースが定義されていません」という問題が発生しましたが、まだこの間違いがありました...すべてのURLファイルにリバースをインポートしても効果はありませんでした...次に、views.pyファイルにリバースをインポートしてローカルサーバーを起動しました動作する...このメッセージの元の解決策は正しいですが、作成者はインポートリバースを投稿する場所について言及していなかったので、元の回答を完成させるかもしれないと思いました...どういうわけか間違っている場合は、お詫びしますが、それは私のために働いた...