Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 23247

ValueError: Cannot query "Customer object (9)": Must be "User" instance [duplicate]

$
0
0

I have set permissions such that an individual can only view orders limited to hiself. I am trying to view individual orders as a customer and that's where the problem is, it querries using the customer_id which in this case is 9, instead of using the user_id associated to the customer "in this case 7". Viewing orders asn admin works perfectly fine..

OrderViewSet/views.py

class OrderViewSet(ModelViewSet):    serializer_class = OrderSerializer    permission_classes = [IsAuthenticated]    def get_queryset(self):        user = self.request.user        if self.request.user.is_staff:            return Order.objects.all()        customer_id = Customer.objects.only("id").get(id=user)        return Order.objects.filter(customer_id=customer_id)

ERROR:

Traceback (most recent call last):  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner    response = get_response(request)               ^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response    response = wrapped_callback(request, *callback_args, **callback_kwargs)               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper    return view_func(request, *args, **kwargs)           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/rest_framework/viewsets.py", line 124, in view    return self.dispatch(request, *args, **kwargs)           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/rest_framework/views.py", line 509, in dispatch    response = self.handle_exception(exc)               ^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/rest_framework/views.py", line 469, in handle_exception    self.raise_uncaught_exception(exc)  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception    raise exc  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/rest_framework/views.py", line 506, in dispatch    response = handler(request, *args, **kwargs)               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/rest_framework/mixins.py", line 38, in list    queryset = self.filter_queryset(self.get_queryset())                                    ^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/AdnexumActio/views.py", line 256, in get_queryset    return Order.objects.filter(customer=customer)           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method    return getattr(self.get_queryset(), name)(*args, **kwargs)           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/query.py", line 1476, in filter    return self._filter_or_exclude(False, args, kwargs)           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/query.py", line 1494, in _filter_or_exclude    clone._filter_or_exclude_inplace(negate, args, kwargs)  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/query.py", line 1501, in _filter_or_exclude_inplace    self._query.add_q(Q(*args, **kwargs))  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/sql/query.py", line 1613, in add_q    clause, _ = self._add_q(q_object, self.used_aliases)                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/sql/query.py", line 1645, in _add_q    child_clause, needed_inner = self.build_filter(                                 ^^^^^^^^^^^^^^^^^^  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/sql/query.py", line 1532, in build_filter    self.check_related_objects(join_info.final_field, value, join_info.opts)  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/sql/query.py", line 1346, in check_related_objects    self.check_query_object_type(value, opts, field)  File "/home/tacitus/Desktop/blessing/env/lib/python3.11/site-packages/django/db/models/sql/query.py", line 1323, in check_query_object_type    raise ValueError(ValueError: Cannot query "Customer object (9)": Must be "User" instance.[09/May/2024 07:24:42] "GET /orders/ HTTP/1.1" 500 145320

Viewing all articles
Browse latest Browse all 23247

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>