Как отфильтровать CommaSeparatedIntegerField Django

Предположим, что модель

class Foo(models.Model):
    bar = models.CommaSeparatedIntegerField('Filter Me!')

Содержимое панели может выглядеть, например, 12,35,67,142 .

Я хочу запросить все Foo , которые имеют 42 в bar :

all_42_foos = Foo.objects.filter(bar__contains="42")

, что не дает правильного результата, поскольку CommaSeparatedIntegerField наследуется от CharField , а оценка фильтра использует строковое содержимое поля (также соответствует приведенному выше примеру с 142 ).

Как можно У меня есть фильтр, который выполняет .split (",") в поле bar , прежде чем проверять 42 ? Я действительно не хочу, чтобы бар превратился в ManyToMany , поскольку это будет ужасно накладными расходами.

5
задан Boldewyn 15 November 2010 в 11:55
поделиться