[CASE array_field_descriptor_access] from django.db import models from django.contrib.postgres.fields import ArrayField class User(models.Model): array = ArrayField(base_field=models.Field()) user = User() reveal_type(user.array) # E: Revealed type is 'builtins.list[Any]' [CASE array_field_base_field_parsed_into_generic_typevar] from django.db import models from django.contrib.postgres.fields import ArrayField class User(models.Model): members = ArrayField(base_field=models.IntegerField()) members_as_text = ArrayField(base_field=models.CharField(max_length=255)) user = User() reveal_type(user.members) # E: Revealed type is 'builtins.list[builtins.int*]' reveal_type(user.members_as_text) # E: Revealed type is 'builtins.list[builtins.str*]'