|
|
@@ -1,7 +1,6 @@
|
|
1
|
1
|
# -*- coding: utf-8 -*-
|
|
2
|
2
|
from django.contrib import messages
|
|
3
|
|
-from django.core.exceptions import (
|
|
4
|
|
- MultipleObjectsReturned, ObjectDoesNotExist, PermissionDenied)
|
|
|
3
|
+from django.core.exceptions import ObjectDoesNotExist, PermissionDenied
|
|
5
|
4
|
from django.http import Http404
|
|
6
|
5
|
from django.shortcuts import get_object_or_404, redirect
|
|
7
|
6
|
from django.urls import reverse
|
|
|
@@ -252,12 +251,24 @@ class LineMixin(object):
|
|
252
|
251
|
"""
|
|
253
|
252
|
|
|
254
|
253
|
def fetch_line(self, user, wishlist_key, line_pk=None, product_pk=None):
|
|
255
|
|
- self.wishlist = WishList._default_manager.get(
|
|
256
|
|
- owner=user, key=wishlist_key)
|
|
257
|
254
|
if line_pk is not None:
|
|
258
|
|
- self.line = self.wishlist.lines.get(pk=line_pk)
|
|
|
255
|
+ self.line = get_object_or_404(
|
|
|
256
|
+ Line,
|
|
|
257
|
+ pk=line_pk,
|
|
|
258
|
+ wishlist__owner=user,
|
|
|
259
|
+ wishlist__key=wishlist_key,
|
|
|
260
|
+ )
|
|
259
|
261
|
else:
|
|
260
|
|
- self.line = self.wishlist.lines.get(product_id=product_pk)
|
|
|
262
|
+ try:
|
|
|
263
|
+ self.line = get_object_or_404(
|
|
|
264
|
+ Line,
|
|
|
265
|
+ product_id=product_pk,
|
|
|
266
|
+ wishlist__owner=user,
|
|
|
267
|
+ wishlist__key=wishlist_key,
|
|
|
268
|
+ )
|
|
|
269
|
+ except Line.MultipleObjectsReturned:
|
|
|
270
|
+ raise Http404
|
|
|
271
|
+ self.wishlist = self.line.wishlist
|
|
261
|
272
|
self.product = self.line.product
|
|
262
|
273
|
|
|
263
|
274
|
|
|
|
@@ -270,8 +281,11 @@ class WishListRemoveProduct(LineMixin, PageTitleMixin, DeleteView):
|
|
270
|
281
|
|
|
271
|
282
|
def get_object(self, queryset=None):
|
|
272
|
283
|
self.fetch_line(
|
|
273
|
|
- self.request.user, self.kwargs['key'],
|
|
274
|
|
- self.kwargs.get('line_pk'), self.kwargs.get('product_pk'))
|
|
|
284
|
+ self.request.user,
|
|
|
285
|
+ self.kwargs['key'],
|
|
|
286
|
+ self.kwargs.get('line_pk'),
|
|
|
287
|
+ self.kwargs.get('product_pk')
|
|
|
288
|
+ )
|
|
275
|
289
|
return self.line
|
|
276
|
290
|
|
|
277
|
291
|
def get_context_data(self, **kwargs):
|
|
|
@@ -300,13 +314,8 @@ class WishListRemoveProduct(LineMixin, PageTitleMixin, DeleteView):
|
|
300
|
314
|
class WishListMoveProductToAnotherWishList(LineMixin, View):
|
|
301
|
315
|
|
|
302
|
316
|
def dispatch(self, request, *args, **kwargs):
|
|
303
|
|
- try:
|
|
304
|
|
- self.fetch_line(request.user, kwargs['key'],
|
|
305
|
|
- line_pk=kwargs['line_pk'])
|
|
306
|
|
- except (ObjectDoesNotExist, MultipleObjectsReturned):
|
|
307
|
|
- raise Http404
|
|
308
|
|
- return super().dispatch(
|
|
309
|
|
- request, *args, **kwargs)
|
|
|
317
|
+ self.fetch_line(request.user, kwargs['key'], line_pk=kwargs['line_pk'])
|
|
|
318
|
+ return super().dispatch(request, *args, **kwargs)
|
|
310
|
319
|
|
|
311
|
320
|
def get(self, request, *args, **kwargs):
|
|
312
|
321
|
to_wishlist = get_object_or_404(
|