Django Oscar - Checkout Preview - Part 21

In this part, we adjust the previous code to show the Preview page, optionally.

 

class PreviewRedirect(RedirectView):

    def get_redirect_url(self, **kwargs):
        self.request.session['payment_method'] = self.request.POST.get('payment_method')
        return reverse('checkout:preview')

 

from django.urls import path
from .views import *

urlpatterns = [
    path("preview_redirect/", PreviewRedirect.as_view(), name="preview_redirect"),
]

 

...

urlpatterns = [
    ...
	path('', include('Store.urls')),
]

 

...
{% block payment_details %}
    {% block payment_details_content %}
        
        <form action="{% url 'preview_redirect' %}" method="post">
            {% csrf_token %}
            <fieldset>
                <input type="radio" name="payment_method" value="google" required> Google Pay <br> 
                <input type="radio" name="payment_method" value="apple" required> Apple Pay <br> 
                <input type="radio" name="payment_method" value="paypal" required> Paypal <br> 
                <input type="radio" name="payment_method" value="card" required> Credit Card <br> <br>
            
                <button type="submit">Continue</button>
            </fieldset>
        </form>


    {% endblock payment_details_content %}
{% endblock payment_details %}
 
...
{% block place_order %}
    <form method="post" action="{% url 'gateway_redirect' %}" id="place_order_form">


...