Я работаю над проектом, в котором мне нужно внести некоторые изменения в пакет джанго-пайпал. Я клонировал репозиторий GitHub пакета и сделал очень простое изменение (Просто измените тип отправки формы = источник изображения), а затем установил его через python setup.py install, но теперь я не смог найти никакого пути для импорта этого пакета.
Например, когда я установил его с помощью pip install django-paypal, я смог импортировать его как from paypal.standard.forms import PayPalPaymentsForm, но после установки через python setup.py install из моего локального измененного источника он не смог найти ни одного пакета paypal.
Как я могу исправить эту проблему?
Помоги мне, пожалуйста!
Заранее спасибо!
Привет, @Blender, это был всего лишь пример, когда мне нужно внести различные изменения, например, мне также нужно добавить target = "_blank" в PaypalPaymentsForm.
Я бы просто создал подкласс PaypalPaymentsForm и переопределил метод render(), чтобы вернуть измененный HTML. Если вы не вносите тонны обширных изменений в основные функции, вы обычно не хотите поддерживать свою собственную копию пакета. Это затруднит обновление.
звучит хорошо, не могли бы вы немного рассказать, как я могу переопределить метод рендеринга? пожалуйста!






Обычно вы не хотите напрямую изменять исходный код модулей. Это затруднит обновление и потребует от вас каким-то образом связать эти измененные пакеты вместе с вашим собственным кодом, что затруднит распространение вашего кода.
Вместо того, чтобы изменять строку, возвращаемую 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
Привет, @Blender, можешь взглянуть на этот вопрос? stackoverflow.com/q/49197631/7644562 пожалуйста!
@AbdulRehman: Думаю, было бы проще пользоваться электронной почтой. IPN PayPal может иметь задержки, и привязка этого к приложению реального времени в Интернете может не сработать.
Привет, @Blender, вы имели в виду, что я должен отправить файл pdf пользователю по электронной почте после успешной оплаты?
@AbdulRehman: Да. Если вы не можете гарантировать немедленный ответ от PayPal, электронная почта кажется самым простым компромиссом.
Как я могу этого добиться? Мне нужно создать PDF-файл из шаблона Django. Вы можете мне помочь с этим? пожалуйста!
@AbdulRehman: Извините, я никогда не работал с генерацией PDF, поэтому я не могу здесь сильно помочь. Я уверен, что для этого существует множество модулей Python.
Вы не можете настроить это с помощью параметра? django-paypal.readthedocs.io/en/stable/…