def edit_profile(request, id): profile = get_object_or_404(Profile, pk=id) if request.user.profile.id != profile.id: message="You are not authorised to view this page." return render(request, "home/custom_error.html", {"message":message}) else: if request.method == "POST": profile_form = ProfileForm(request.POST, request.FILES, instance=profile) card_form = CardForm(request.POST) if profile_form.is_valid() and card_form.is_valid(): profile = profile_form.save(commit=False) profile.user = request.user token=card_form.cleaned_data['stripe_id'] customer = stripe.Customer.create( source=token, email=request.user.email, ) profile.stripe_id = customer.id profile.save() return redirect("user_profile") else: return render(request, "accounts/profile_form.html", {"profile_form": profile_form, "card_form": card_form, "publishable": settings.STRIPE_PUBLISHABLE_KEY}) else: profile_form = ProfileForm(instance=profile) card_form = CardForm() return render(request, "accounts/profile_form.html", {"profile_form": profile_form, "card_form": card_form, "publishable": settings.STRIPE_PUBLISHABLE_KEY})
def edit(request): uid = request.session.get('user') if uid is None: return HttpResponseRedirect('/') user = User.objects.get(pk=uid) if request.method == 'POST': form = CardForm(request.POST) if form.is_valid(): customer = stripe.Customer.retrieve(user.stripe_id) customer.card = form.cleaned_data['stripe_token'] customer.save() user.last_4_digits = form.cleaned_data['last_4_digits'] user.stripe_id = customer.id user.save() return HttpResponseRedirect('/') else: form = CardForm() return render_to_response('edit.html', { 'form': form, 'publishable': settings.STRIPE_PUBLISHABLE, 'soon': soon(), 'months': range(1, 12), 'years': range(2016, 2036) }, context_instance=RequestContext(request))
def add_profile(request): redirect_to = request.GET.get('next', '/') if request.method == "POST": profile_form = ProfileForm(request.POST, request.FILES) card_form = CardForm(request.POST) if profile_form.is_valid() and card_form.is_valid(): profile = profile_form.save(commit=False) profile.user = request.user token=card_form.cleaned_data['stripe_id'] customer = stripe.Customer.create( source=token, email=request.user.email, ) profile.stripe_id = customer.id profile.save() return redirect(redirect_to) else: return render(request, "accounts/profile_form.html", {"profile_form": profile_form, "card_form": card_form, "publishable": settings.STRIPE_PUBLISHABLE_KEY}) else: card_form = CardForm() profile_form=ProfileForm() return render(request, "accounts/profile_form.html", {"profile_form": profile_form, "card_form": card_form, "publishable": settings.STRIPE_PUBLISHABLE_KEY})