'Django 3.2.1 KeyError in admin panel "django/db/models/fields/related_descriptors.py", line 173

I have models set up like the following:

class A(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name

class B(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    a = models.ForeignKey(A, on_delete=models.CASCADE)
 
    def __str__(self):
        return self.a.name


class C(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

    b = models.ForeignKey(
        B, on_delete=models.CASCADE, related_name="c_name"
    )
  
    def __str__(self):
        return self.b.a.name

When I access C in the admin panel, I'm getting the following error:

KeyError: 'a'
  File "django/db/models/fields/related_descriptors.py", line 173, in __get__
    rel_obj = self.field.get_cached_value(instance)
  File "django/db/models/fields/mixins.py", line 15, in get_cached_value
    return instance._state.fields_cache[cache_name]

I can't seem to find anything that explains why this would fail. I have looked at the underlying data (via psql) and the foreign keys are pointing to the right models etc.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source