自定义Python包 - django-paypal

时间:2018-03-10 05:34:24

标签: python django python-3.x paypal django-paypal

我正在开展一个项目,我需要在django-paypal包中进行一些更改。我克隆了包的GitHub仓库并做了一个非常简单的更改(只需更改表单提交类型=图像源)然后通过from paypal.standard.forms import PayPalPaymentsForm安装它但现在我找不到任何路径导入此包。

例如,当我使用python setup.py install进行安装时,我可以像paypal一样导入它,但是在通过/^\d+(,\d+)*$/ 从本地更改的源安装后,它就找不到了ActiveCell.FormulaR1C1 = "=SUM(RC[-1],RC[-2])" ActiveCell.Select Selection.Copy ActiveCell.Offset(0, -1).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveCell.Offset(0, 1).Range("A1").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "0" ActiveCell.Offset(0, 1).Range("A1").Select 包。

我该如何解决这个问题?

请帮帮我!

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

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

your_app/forms.py

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