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%2BFScou0VORFJPhSXUnhFeiwqUD2TyETg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.