您可以通过传入自己的功能来更改/重定向django表单的功能吗?

时间:2011-07-19 23:11:26

标签: python django paypal e-commerce django-paypal

我正在处理django-paypal并希望更改按钮src图像。所以我去了源中的conf.py文件并编辑了src目的地。但是,我真的想留下源,我注意到了

class PayPalPaymentsForm(forms.Form):

def get_image(self):
    return {
        (True, self.SUBSCRIBE): SUBSCRIPTION_SANDBOX_IMAGE,
        (True, self.BUY): SANDBOX_IMAGE,
        (True, self.DONATE): DONATION_SANDBOX_IMAGE,
        (False, self.SUBSCRIBE): SUBSCRIPTION_IMAGE,
        (False, self.BUY): IMAGE,
        (False, self.DONATE): DONATION_IMAGE,
    }[TEST, self.button_type]

处理所有图像src目的地。由于在源代码中更改此def比改变conf更糟糕,我想知道是否有一种方法可以传递自定义的defs,就像在表单中传递初始参数一样?这样就不会改变源代码,我可以根据需要自定义get_image def。

传递def这样的东西?

def get_image(self):
    ....
    ....
paypal = {
    'amount': 10,
    'item_name': 'test1',
    'item_number': 'test1_slug',

    # PayPal wants a unique invoice ID
    'invoice': str(uuid.uuid4()), 
}
form = PayPalPaymentsForm(initial=paypal, get_image)

谢谢!

2 个答案:

答案 0 :(得分:1)

如下所示:https://github.com/dcramer/django-paypal/blob/master/paypal/standard/conf.py

您必须在settings.py中更改PAYPAL_IMAGE或PAYPAL_SUBSCRIPTION_IMAGE,....

答案 1 :(得分:0)

只是继承PayPalPaymentsForm并覆盖get_image