diff --git a/hosting/views.py b/hosting/views.py index f082ae1b..d4af6d25 100644 --- a/hosting/views.py +++ b/hosting/views.py @@ -664,8 +664,12 @@ class PaymentVMView(LoginRequiredMixin, FormView): def get_context_data(self, **kwargs): context = super(PaymentVMView, self).get_context_data(**kwargs) user = self.request.user + if hasattr(user, 'stripecustomer'): + stripe_customer = user.stripecustomer + else: + stripe_customer = None cards_list = UserCardDetail.get_all_cards_list( - stripe_customer= user.stripecustomer + stripe_customer=stripe_customer ) context.update({ 'cards_list': cards_list, diff --git a/membership/models.py b/membership/models.py index dc76a8dc..7ebf00ca 100644 --- a/membership/models.py +++ b/membership/models.py @@ -221,19 +221,19 @@ class StripeCustomer(models.Model): stripe_data = stripe_utils.create_customer(token, email, user.name) if stripe_data.get('response_object'): stripe_cus_id = stripe_data.get('response_object').get('id') - if user.stripecustomer is None: - # The user never had an associated Stripe account - # So, create one - stripe_customer = StripeCustomer.objects.create( - user=user, stripe_id=stripe_cus_id - ) - else: + if hasattr(user, 'stripecustomer'): # User already had a Stripe account and we are here # because the account was deleted in dashboard # So, we simply update the stripe_id user.stripecustomer.stripe_id = stripe_cus_id user.stripecustomer.save() stripe_customer = user.stripecustomer + else: + # The user never had an associated Stripe account + # So, create one + stripe_customer = StripeCustomer.objects.create( + user=user, stripe_id=stripe_cus_id + ) return stripe_customer else: return None