Вы хотите использовать методы ORM для достижения этой цели.
Например, посмотрите документацию по ArrayFields
У нас есть эта модель
from django.contrib.postgres.fields import ArrayField
from django.db import models
class Post(models.Model):
name = models.CharField(max_length=200)
tags = ArrayField(models.CharField(max_length=200), blank=True)
def __str__(self):
return self.name
Чтобы найти сообщения, помеченные как "django"
>>> Post.objects.filter(tags__contains=['django'])
<QuerySet [<Post: First post>, <Post: Third post>]>
Здесь tags__contains
расширяется до специального фильтра, который фактически выполняет запросы в массиве с использованием PostgreSQL функций.
В качестве альтернативы вы можете использовать недостаточно документированный to_python
метод .
, который для вашего примера будет:
x in self.exampleArrayField.to_python()
Однако , внимательно посмотрите на ваш код и подумайте, действительно ли это необходимо. Если вы зацикливаетесь на куче Python объектов и вызываете этот метод, вы теряете 100% выигрыша в производительности от Postgres работы с массивами с использованием ORM.