Фильтрация по индексированному значению в CommaSeparatedIntegerField - PullRequest
1 голос
/ 20 октября 2011

У меня есть класс модели, у которого есть целочисленное поле, разделенное запятыми, которое отображается на поле целочисленного массива Postgres.

class Observation(models.Model):
    frequencies = models.CommaSeparatedIntegerField(max_length=200)

Я хочу использовать фильтр (или что-то еще) интерфейс для сравнения индексированных значений в массиве.Пример:

Observation.objects.filter(frequencies[100]__equals = 10)

Я знаю, что не могу этого сделать и не вижу в документации, как индексировать поле массива в интерфейсе фильтра.Я хочу, чтобы это действие выполнялось SQL в базе данных (возможно, придется делать это в коде?).

Я знаю, что могу использовать функцию extra (), но я хочу знать, есть ли лучшеКстати?

Спасибо.

1 Ответ

2 голосов
/ 20 октября 2011

Если вам нужно искать отдельные объекты в поле, разделенном запятыми, вам, вероятно, следует подумать, является ли этот формат для ваших данных правильным.Возможно, более подходящим является внешний ключ для отдельной таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...