Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
定制Python包-django paypal_Python_Django_Python 3.x_Paypal_Django Paypal - Fatal编程技术网

定制Python包-django paypal

定制Python包-django paypal,python,django,python-3.x,paypal,django-paypal,Python,Django,Python 3.x,Paypal,Django Paypal,我正在做一个项目,在这个项目中,我需要对软件包进行一些更改。我已经克隆了包的GitHub repo,并做了一个非常简单的更改,只需更改一个表单submit type=image source,然后通过python setup.py安装进行安装,但现在我找不到任何导入此包的路径 例如,当我使用pip install django paypal安装它时,我可以像从paypal.standard.forms导入PayPalPaymentsForm一样导入它,但在从本地更改的源代码通过python se

我正在做一个项目,在这个项目中,我需要对软件包进行一些更改。我已经克隆了包的GitHub repo,并做了一个非常简单的更改,只需更改一个表单submit type=image source,然后通过python setup.py安装进行安装,但现在我找不到任何导入此包的路径

例如,当我使用pip install django paypal安装它时,我可以像从paypal.standard.forms导入PayPalPaymentsForm一样导入它,但在从本地更改的源代码通过python setup.py安装它之后,它找不到任何paypal包

如何解决此问题

请帮帮我


提前谢谢

您通常希望避免直接修改模块的源代码。这将使升级变得困难,并要求您以某种方式将这些修改过的包与您自己的代码捆绑在一起,这使得分发代码变得困难

与其更改PayPalPaymentsForm.render返回的字符串,不如将其子类化并修改render方法以返回所需的HTML:

你的应用程序/forms.py


您不能用设置来配置它吗?您好@Blender,这只是一个示例,我需要进行各种更改,比如我还需要将target=\u blank添加到PaypalPaymentsForm。我只需要将PaypalPaymentsForm子类化,并重写render方法以返回修改后的HTML。除非您对核心功能进行大量修改,否则您通常不想维护自己的包副本。这会使升级变得困难。听起来不错,你能告诉我如何覆盖渲染方法吗?请嗨@Blender,你能看看这个问题吗?求你了@阿卜杜勒·雷赫曼:我认为使用电子邮件会更容易。PayPal的IPN可能会有延迟,并且将其与互联网上的实时应用程序绑定可能无法正常工作。您好@Blender,您的意思是我应该在成功付款后通过电子邮件向用户发送pdf文件吗?@AbdulRehman:是的。如果你不能保证PayPal会立即回复,电子邮件似乎是最容易的折衷方案。我如何才能做到这一点?我需要从Django模板生成pdf。你能帮我一下吗?请
from django.utils.html import format_html
from paypal.standard.forms import PayPalPaymentsForm

class CustomPayPalPaymentsForm(PayPalPaymentsForm):
    def render(self):
        return format_html(u"""<form action="{0}" method="post">
    {1}
    <input type="image" src="{2}" border="0" name="submit" alt="Buy it Now" />
</form>""", self.get_endpoint(), self.as_p(), self.get_image())
from your_app.forms import CustomPayPalPaymentsForm