我使用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,该怎么回事?
答案 0 :(得分:24)
您需要导入函数reverse
:
from django.core.urlresolvers import reverse
您可以阅读更多相关信息here。这是django特有的,但看起来你正试图建立一个URL,所以它可能就是你想要的。
对于Django> 2.0 强>
from django.urls import reverse
答案 1 :(得分:5)
在Django2.0中:
from django.urls import reverse
答案 2 :(得分:1)
reverse
不是python中的内置函数。据推测,它是某个Web框架中的一个函数,用于执行反向路由(从名称获取url路径)。 notify_url
必须是您的应用程序中的一个URL,Paypal将向其发送通知。
答案 3 :(得分:1)
Python中没有内置函数reverse
。 (有一个reversed
,但我怀疑它是你想要的。)
Django中是一个reverse
函数。但是你只能在Django视图或类似的代码中加载Django内置函数;如果你以其他方式导入或运行此代码,它就不会存在。
因此,据推测,您之前在说明中遇到了错误,并且实际上并未创建视图。 (Django-PayPal指令清楚地写给已经是经验丰富的Django开发人员的人;如果你不了解基本的Django概念,你可能需要先完成the tutorials。)
答案 4 :(得分:1)
paypal-ipn的网址可能是在django-paypal的网址中定义的。我想导入django的反向将解决这个问题。
from django.core.urlresolvers import reverse
答案 5 :(得分:0)
我遵循此解决方案来解决“未定义反向”问题,但我仍然遇到这个错误...我在所有url文件中导入了反向,没有任何效果...然后我将反向导入了views.py文件和我的本地服务器开始工作... 此消息的原始解决方案是正确的,但作者没有提及将导入反向发布到何处,因此我认为可能是我将完成原始答案...如果某种方式我错了,我表示歉意,但这对我有用。 ..
答案 6 :(得分:0)
-在models.py中使用此代码...
from django.urls import reverse
def get_absolute_url(self):
return reverse('url-name', kwargs={'pk':self.pk})