|
|
@@ -149,10 +149,11 @@ class ShippingAddressView(CheckoutSessionMixin, FormView):
|
|
149
|
149
|
return UserAddress._default_manager.filter(user=self.request.user).order_by('-is_default_for_shipping')
|
|
150
|
150
|
|
|
151
|
151
|
def post(self, request, *args, **kwargs):
|
|
152
|
|
- # Check if a shipping address was selected directly (eg no form was filled in)
|
|
|
152
|
+ # Check if a shipping address was selected directly (eg no form was
|
|
|
153
|
+ # filled in)
|
|
153
|
154
|
if self.request.user.is_authenticated() and 'address_id' in self.request.POST:
|
|
154
|
|
- address = UserAddress._default_manager.get(pk=self.request.POST['address_id'],
|
|
155
|
|
- user=self.request.user)
|
|
|
155
|
+ address = UserAddress._default_manager.get(
|
|
|
156
|
+ pk=self.request.POST['address_id'], user=self.request.user)
|
|
156
|
157
|
action = self.request.POST.get('action', None)
|
|
157
|
158
|
if action == 'ship_to':
|
|
158
|
159
|
# User has selected a previous address to ship to
|
|
|
@@ -166,11 +167,15 @@ class ShippingAddressView(CheckoutSessionMixin, FormView):
|
|
166
|
167
|
else:
|
|
167
|
168
|
return HttpResponseBadRequest()
|
|
168
|
169
|
else:
|
|
169
|
|
- return super(ShippingAddressView, self).post(request, *args, **kwargs)
|
|
|
170
|
+ return super(ShippingAddressView, self).post(
|
|
|
171
|
+ request, *args, **kwargs)
|
|
170
|
172
|
|
|
171
|
173
|
def form_valid(self, form):
|
|
172
|
174
|
# Store the address details in the session and redirect to next step
|
|
173
|
|
- self.checkout_session.ship_to_new_address(form.clean())
|
|
|
175
|
+ address_fields = dict(
|
|
|
176
|
+ (k, v) for (k, v) in form.instance.__dict__.items()
|
|
|
177
|
+ if not k.startswith('_'))
|
|
|
178
|
+ self.checkout_session.ship_to_new_address(address_fields)
|
|
174
|
179
|
return super(ShippingAddressView, self).form_valid(form)
|
|
175
|
180
|
|
|
176
|
181
|
def get_success_url(self):
|