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 <[email protected]>
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 [email protected].
> To post to this group, send email to [email protected].
> 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/CAD83tOxhgfQGucutTQ%2BFScou0VORFJPhSXUnhFeiwqUD2Ty
> ETg%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 [email protected].
To post to this group, send email to [email protected].
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to