krishnaansh/django-coupon-management

more than two couponuser count

Closed this issue · 2 comments

hi there!

Can't quite put my finger on it and why it's happening, but if a user has used two different coupons (showing twice as a coupon user in admin), any attempt for the same user to use a coupon ever again causes this error. At first glance it has to do with the .get() call in your validations.py. Not quite sure though why in the end it raises MultipleObjecstReturned:

Variable | Value
-- | --
args | ()
clone | <QuerySet [<CouponUser: testuser10>, <CouponUser: testuser10>]>
kwargs | {'user': <SimpleLazyObject: <User: testuser10>>}
limit | 21
num | 2
self | <QuerySet [<CouponUser: testuser11>, <CouponUser: testuser11>, <CouponUser: testuser10>, <CouponUser: rado>, <CouponUser: rado>, <CouponUser: piratko>, <CouponUser: piratko>, <CouponUser: testuser10>]>

Traceback (most recent call last):
  File "D:\Code\price_tracker_django\.venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "D:\Code\price_tracker_django\.venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "D:\Code\price_tracker_django\.venv\lib\site-packages\django\contrib\auth\decorators.py", line 23, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "D:\Code\price_tracker_django\tracker\views.py", line 1157, in profile
    status = validate_coupon(coupon_code=activation_code,user=user)
  File "D:\Code\price_tracker_django\.venv\lib\site-packages\coupon_management\validations.py", line 68, in validate_coupon
    valid_max_uses_rule = validate_max_uses_rule(coupon_object=coupon_object, user=user)
  File "D:\Code\price_tracker_django\.venv\lib\site-packages\coupon_management\validations.py", line 33, in validate_max_uses_rule
    coupon_user = CouponUser.objects.get(user=user)
  File "D:\Code\price_tracker_django\.venv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "D:\Code\price_tracker_django\.venv\lib\site-packages\django\db\models\query.py", line 499, in get
    raise self.model.MultipleObjectsReturned(

Exception Type: MultipleObjectsReturned at /testuser10/profile/
Exception Value: get() returned more than one CouponUser -- it returned 2!

Hi @dedepene sure we will look into it and try to resolve this asap
We keep posted

Hi @dedepene issue resolved kindly update to latest version via
pip install -U django-coupon-management