Асинхронный вызов функции Stripe

Я новичок в Django и работаю над приложением на основе Stripe и обнаружил, что мои представления на основе классов работают очень медленно, а мне нужно сделать их как можно быстрее. Я обнаружил, что в Django есть поддержка асинхронности, но я не могу понять, как я могу использовать ее в представлениях, основанных на классах, везде, где я нахожу, есть примеры, основанные на функциях.

class BillSerializer(ReturnNoneSerializer, serializers.ModelSerializer):
interval = serializers.CharField(read_only=True, required=False)
amount = serializers.IntegerField(read_only=True, required=False)
date = serializers.DateTimeField(read_only=True, required=False)
is_active = serializers.BooleanField(read_only=True, required=False)
subscription_expiry = serializers.BooleanField(read_only=True, required=False)
active_jobs = serializers.IntegerField(read_only=True, required=False)


class Meta:
  model = Billing
  fields = "__all__"


def to_representation(self, validated_data):
stripe.api_key = settings.STRIPE_API_KEY
stripe_sub = stripe.Subscription.retrieve(
    self.context["request"].billing.stripe_subscription_id
)
stripe_object = stripe_sub.get("items")
quantity = stripe_object.get("data")[0].get("quantity")
amount = (
    stripe_object.get("data")[0].get("price").get("unit_amount") // 100 * quantity
)
interval = stripe_object.get("data")[0].get("plan").get("interval")
date = datetime.fromtimestamp(stripe_sub.current_period_end).strftime(
    "%Y-%m-%d %H:%M:%S"
)
if validated_data.subscription_end < make_aware(datetime.now()):
    is_active = False
else:
    is_active = True
if validated_data.subscription_end <= make_aware(datetime.now()):
    subscription_expiry = True
else:
    subscription_expiry = False
return {
    "date": date,
    "interval": interval,
    "amount": amount,
    "quantity": quantity,
    "is_active": is_active,
    "subscription_expiry": subscription_expiry,
}
Вернуться на верх