Можете ли вы изменить / перенаправить функцию формы django, передав свою собственную функцию? - PullRequest
0 голосов
/ 20 июля 2011

Я имею дело с django-paypal и хочу изменить кнопку src images. Поэтому я пошел в файл 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]

, который обрабатывает все пункты назначения изображения. Поскольку изменение этого определения в исходном коде хуже, чем изменение conf, мне было интересно, есть ли способ передать настраиваемые определения, которые вы делаете, например, передавая начальные аргументы в формах? Таким образом, исходный код не изменяется, и я могу настроить определение get_image столько, сколько мне нужно.

передать в 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 ]

1 голос
/ 06 октября 2012

Как видно здесь: https://github.com/dcramer/django-paypal/blob/master/paypal/standard/conf.py

Вы должны изменить PAYPAL_IMAGE или PAYPAL_SUBSCRIPTION_IMAGE, ... в ваших settings.py.

0 голосов
/ 20 июля 2011

Просто подкласс PayPalPaymentsForm и переопределить get_image.

...