I'm using django-paypal and PayPalEncryptedPaymentsForm as
def payment_process(request):
host = request.get_host()
paypal_dict = {
"business": settings.PAYPAL_RECEIVER_EMAIL,
"currency_code": "USD",
"notify_url": f"http://{host}{reverse('paypal-ipn')}",
"return_url": f"http://{host}{reverse('payment:success')}",
"cancel_return": f"http://{host}{reverse('payment:cancel')}",
}
i = 1
for x in Order.objects.filter(user=request.user):
paypal_dict.update({f"item_name_{i}": str(x.product.name)})
paypal_dict.update({f"amount_{i}": x.product.price})
i += 1
form = PayPalEncryptedPaymentsForm(initial=paypal_dict)
return render(request, "payment/payment_process.html", {"form": form})
and in my templates that's {{ form.render }} but when i click to Buy it button, it loads a page like this
Then what ever price i enter and continue.. paypal wants me to pay that much price. (Why it just do like this) :\

This is an example, I think it will help you
One more thing if you want set the Order paid use signals.py and inform to the app config
In your apps.py
This full documentation
https://overiq.com/django-paypal-integration-with-django-paypal/
and This is Video link
https://youtu.be/Ftz3DG9Sq50?si=SVrEmZqYyd-HePdI
I think this is gonna help You.
I am too late