Source code for payments.templatetags.payments
from django import template
from django.contrib.contenttypes.models import ContentType
from payments.exceptions import PaymentError
from payments.models import Payable, PaymentUser
register = template.Library()
[docs]@register.inclusion_tag("payments/templatetags/payment_button.html")
def payment_button(payable: Payable, redirect_to: str):
if payable.pk is None:
raise PaymentError("Payable does not exist")
content_type = ContentType.objects.get_for_model(payable)
return {
"member": PaymentUser.objects.get(pk=payable.payment_payer.pk)
if payable.payment_payer
else None,
"payable": payable,
"app_label": content_type.app_label,
"model_name": content_type.model,
"redirect_to": redirect_to,
}