Following is the dispatch function:

 def dispatch(self, request, *args, **kwargs):
        try:
            user_check_id = self.request.session.get("user_checkout_id")
            user_checkout = UserCheckout.objects.get(id=user_check_id)
        except UserCheckout.DoesNotExist:
            user_checkout = UserCheckout.objects.get(user=request.user)
        except:
            user_checkout = None

        obj = self.get_object()
        if obj.user == user_checkout and user_checkout is not None:
            return super(OrderDetail, self).dispatch(request, *args,
**kwargs)
        else:
            raise Http404

On line 27 color is red. Usually the error related to SimpleLazyObject
means that it's not able to grab the field with reference. I don't know
what to replace it with.

On Wed, Aug 31, 2016 at 5:31 AM, Andromeda Yelton <
andromeda.yel...@gmail.com> wrote:

> I think the key line of the traceback is this -
> > File "C:\Users\Shazia\dd\src\orders\views.py" in dispatch
> >   27.             user_checkout = UserCheckout.objects.get(user=
> request.user)
>
> And the error is being thrown during your redirect to /orders/4/ at the
> end of the post. What does your orders/views.py look like around line 27?
>
> Unrelated to this error, but I'm also wondering what happens in
> CheckoutFinalView if the paymethod is CashOnDelivery or CreditCard -
> neither of those branches of your if statement actually return any sort of
> http response.
>
> On Wed, Aug 31, 2016 at 7:27 AM, Shazia Nusrat <shazianu...@gmail.com>
> wrote:
>
>> Hi I am having this error while I am trying to delete session and cart by
>> IDs after order fulfillment.
>>
>> carts/views.py
>>
>> class CheckoutFinalView(CartOrderMixin, View):
>>>     def post(self, request, *args, **kwargs):
>>>         order = self.get_order()
>>>         order_id = order.id
>>>         print order_id
>>>
>>>         pay_method = request.POST.get("paymethod")
>>>         print pay_method
>>>         order.save()
>>>
>>>         if request.POST.get('paymethod') == "CashOnDelivery":
>>>             order.mark_completed(order_id)
>>>             messages.success(request, "Thank you for your order")
>>>             del request.session["cart_id"]
>>>             del request.session["order_id"]
>>>         elif request.POST.get("paymethod") == 'CreditCard':
>>>             order.mark_completed(order_id)
>>>             messages.success(request, "Thank you for your order")
>>>             del request.session['order_id']
>>>             del request.session['cart_id']
>>>         else:
>>>             return redirect("order_detail", pk=order.pk)
>>>
>>
>> In my orders/models.py:
>>
>> order_id = models.CharField(max_length=20, null=True, blank=True)
>>     paymethod = models.CharField(max_length=16, choices=CHOICES,
>> default='CashOnDelivery')
>>
>>
>> My orders/views.py:
>>
>> class CashOnDelivery(FormView):
>>>     model = Order
>>>     form_class = PaymentForm
>>>     template_name = 'orders/payment_method.html'
>>>     success_url = '/checkout/final'
>>>
>>> My orders/forms.py:
>>
>> class PaymentForm(forms.ModelForm):
>>>     class Meta:
>>>         model = Order
>>>         fields = [
>>>             'paymethod'
>>>         ]
>>>
>>
>> My carts/checkout.html:
>>
>> {% extends 'base.html' %}
>>> {% load crispy_forms_tags %}
>>> {% block content %}
>>>
>>> <form method='POST' action="{% url 'checkout_final' %}">{% csrf_token %}
>>>  <!--<input type='hidden' name='payment_token' value='ABC' />-->
>>> <!--if method selected then cod should not display-->
>>>
>>>     {{ paymentform|crispy }}
>>>
>>>
>>>  <p><b><button type='submit'>Complete Order</button></b>
>>>     </p>
>>>
>>>     </form>
>>> {% endblock %}.
>>>
>>
>> Finally my complete traceback:
>>
>> > Traceback:
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\core\handlers\base.py"
>> in get_response
>> >   132.                     response = wrapped_callback(request,
>> *callback_args, **callback_kwargs)
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\views\generic\base.py"
>> in view
>> >   71.             return self.dispatch(request, *args, **kwargs)
>> > File "C:\Users\Shazia\dd\src\orders\views.py" in dispatch
>> >   27.             user_checkout = UserCheckout.objects.get(user=
>> request.user)
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\manager.py"
>> in manager_method
>> >   127.                 return getattr(self.get_queryset(), name)(*args,
>> **kwargs)
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\query.py"
>> in get
>> >   325.         clone = self.filter(*args, **kwargs)
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\query.py"
>> in filter
>> >   679.         return self._filter_or_exclude(False, *args, **kwargs)
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\query.py"
>> in _filter_or_exclude
>> >   697.             clone.query.add_q(Q(*args, **kwargs))
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\sql\query.py"
>> in add_q
>> >   1310.         clause, require_inner = self._add_q(where_part,
>> self.used_aliases)
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\sql\query.py"
>> in _add_q
>> >   1338.                     allow_joins=allow_joins,
>> split_subq=split_subq,
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\sql\query.py"
>> in build_filter
>> >   1200.                                                     lookups,
>> value)
>> > File 
>> > "C:\Users\Shazia\dd\lib\site-packages\django\db\models\fields\related.py"
>> in get_lookup_constraint
>> >   1745.                     lookup_class(target.get_col(alias,
>> source), val), AND)
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\lookups.py"
>> in __init__
>> >   101.         self.rhs = self.get_prep_lookup()
>> > File "C:\Users\Shazia\dd\lib\site-packages\django\db\models\lookups.py"
>> in get_prep_lookup
>> >   139.         return 
>> > self.lhs.output_field.get_prep_lookup(self.lookup_name,
>> self.rhs)
>> > File 
>> > "C:\Users\Shazia\dd\lib\site-packages\django\db\models\fields\__init__.py"
>> in get_prep_lookup
>> >   727.             return self.get_prep_value(value)
>> > File 
>> > "C:\Users\Shazia\dd\lib\site-packages\django\db\models\fields\__init__.py"
>> in get_prep_value
>> >   985.         return int(value)
>> >
>> > Exception Type: TypeError at /orders/4/
>> > Exception Value: int() argument must be a string or a number, not
>> 'SimpleLazyObject'
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to django-users+unsubscr...@googlegroups.com.
>> To post to this group, send email to django-users@googlegroups.com.
>> Visit this group at https://groups.google.com/group/django-users.
>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/django-users/CAD83tOxhgfQGucutTQ%2BFScou0VORFJPhSXUnhFei
>> wqUD2TyETg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/django-users/CAD83tOxhgfQGucutTQ%2BFScou0VORFJPhSXUnhFeiwqUD2TyETg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Andromeda Yelton
> Vice President/President-Elect, Library & Information Technology
> Association: http://www.lita.org
> http://andromedayelton.com
> @ThatAndromeda <http://twitter.com/ThatAndromeda>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/CAFE1XCZx3Yd5P5iADGt9HKngh2XD7-seYH8PFDPvD7XB%3Det1Lw%
> 40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CAFE1XCZx3Yd5P5iADGt9HKngh2XD7-seYH8PFDPvD7XB%3Det1Lw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAD83tOzhXhfePOa-Qjpbc6Tvn1fzAJ9O8UjcVCMWAqdds_AVMg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to