FieldError in ForeignKey while saving object in Django model

This is my model definition with an abstract model and the food cart model

class BaseCartItems(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=100)
    cart = models.ForeignKey(BaseCart, on_delete=models.CASCADE, related_name='cart_items')
    item = models.ForeignKey(BaseServiceItem, on_delete=models.CASCADE, related_name='cart_items')
    quantity = models.IntegerField(default=1)
    price = models.FloatField(default=0)
    ordered = models.BooleanField(default=False)
    add_ons = models.JSONField(default=list, blank=True, null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

    def add_quantity(self, quantity):
        self.quantity += quantity
        self.save()

Class FoodCartItems(BaseCartItems):
    cart = models.ForeignKey(FoodCart)
    item = models.ForeignKey(FoodServiceItem)

I am trying to fetch an existing food cart item and then update its quantity by calling cart_item.add_quantity(2)

This throws me an error with the following traceback:

Traceback (most recent call last):
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/nestafar/service/views/cart.py", line 52, in post
    existing_cart_item.add_quantity(item['quantity'])
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/nestafar/service/models/cart.py", line 62, in add_quantity
    self.save()
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/base.py", line 814, in save
    self.save_base(
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/base.py", line 892, in save_base
    post_save.send(
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/dispatch/dispatcher.py", line 176, in send
    return [
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/dispatch/dispatcher.py", line 177, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/nestafar/service/subapps/food/signals.py", line 12, in food_service_item_post_save
    food_cart = FoodCart.objects.filter(cart=instance.cart).first()
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/manager.py", line 87, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/query.py", line 1436, in filter
    return self._filter_or_exclude(False, args, kwargs)
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/query.py", line 1454, in _filter_or_exclude
    clone._filter_or_exclude_inplace(negate, args, kwargs)
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/query.py", line 1461, in _filter_or_exclude_inplace
    self._query.add_q(Q(*args, **kwargs))
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1545, in add_q
    clause, _ = self._add_q(q_object, self.used_aliases)
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1576, in _add_q
    child_clause, needed_inner = self.build_filter(
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1426, in build_filter
    lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize)
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1236, in solve_lookup_type
    _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
  File "/Users/shubhojyoti/Desktop/Nestafar/tech/code/platform/venv/lib/python3.9/site-packages/django/db/models/sql/query.py", line 1724, in names_to_path
    raise FieldError(
django.core.exceptions.FieldError: Cannot resolve keyword 'cart' into field. Choices are: charges, created_at, food_cart, food_cart_items, guest, guest_id, id, order_created_at, ordered_status, status, subtotal, taxes, total, updated_at

Please let me know what is going wrong

Tried tweaking the model to remove cart and item from the abstract model but the issue still persists.

Back to Top