Prática recomendada de solicitação de API de envio do Django: dentro do modelo salvar ou serializador?

sadmansh

Tenho um modelo chamado Customere, no método de salvamento do modelo, envio uma solicitação à API Stripe para criar um cliente sempre que uma instância de cliente é criada em meu aplicativo. Outra maneira de fazer isso é no arquivo serializer.py. Ou seja, quando um usuário cria uma instância do cliente em meu aplicativo, ele enviará automaticamente uma solicitação de stripe para criar um cliente nessa extremidade. Qual destas é a melhor prática? Acredito que, para "atualizar" os clientes, terei que enviar a solicitação de stripe do meu arquivo serializers.py. O mesmo pode acontecer com criar o cliente a partir desse arquivo. Qualquer ajuda seria apreciada.

Saroj Rai

Ambas as abordagens estão corretas ou solicite Stripe no método de salvamento ou depois que o usuário criar um cliente. E você não precisa de serializadores para atualizar os clientes. Simplesmente você pode fazer isso, apenas um exemplo para atualizar o cartão.

def update_card(request):
    if request.method == 'POST':
    """
        replace old card with new
    """

        customer = Customer.objects.get(user=request.user).stripe_cust_id
        # Customer is my custom table that recored stripe customer information

        stripe.Customer.modify(
            customer,
            source=request.POST['stripeToken'],
        )

meu modelo

 <form action="{% url 'subscriptions:update_card' %}" method="post" id="payment-form">{% csrf_token %}
                            <div class="card-input-wrap m-4">

                                    <label for="card-element">Credit or debit card</label>
                                    <div id="card-element">
                                        <!-- a Stripe Element will be inserted here. -->
                                    </div>

                                    <!-- Used to display form errors -->
                                    <div id="card-errors" role="alert"></div>


                            </div>
                                <button type="submit" class="btn btn-primary ml-4 mb-4">Save Info <i class="la la-save"></i></button>
   </form>

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados