глобальное имя 'reverse' не определено

Я использую django-paypal библиотека для использования платежей PayPal на моем сайте.

после пример, я поставил 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, что происходит?

5 ответов


вам нужно импортировать функцию reverse:

from django.core.urlresolvers import reverse

вы можете прочитать больше об этом здесь. Это специфично для django, но похоже, что вы все равно пытаетесь создать URL-адрес, поэтому это, вероятно, то, что вы хотите.


в Django2.0 :

from django.urls import reverse

reverse не является встроенной функцией в python. Предположительно, это функция в некоторой веб-структуре для выполнения обратной маршрутизации (получение url-пути от имени). The notify_url должен быть url-адрес в вашем приложении, на который Paypal будет отправлять уведомления.


нет встроенной функции reverse в Python. (Есть reversed, но я сомневаюсь, что это то, что вы хотите.)

здесь is a reverse


url для paypal-ipn, вероятно, определен в URL-адресах django-paypal. Я думаю, что импорт обратного django решит эту проблему.

from django.core.urlresolvers import reverse