假設一個模型如何篩選Django的CommaSeparatedIntegerField
class Foo(models.Model):
bar = models.CommaSeparatedIntegerField('Filter Me!')
的bar
的內容可能看起來像,例如,12,35,67,142
。
我想查詢所有Foo
的時候,那些有42
在bar
:
all_42_foos = Foo.objects.filter(bar__contains="42")
不給出正確的結果,因爲從CharField
CommaSeparatedIntegerField
繼承和過濾器評價使用的字符串內容字段(以上示例也與142
匹配)。
我如何擁有一個篩選器,在bar
字段上執行.split(",")
,然後檢查42
?我真的不希望bar
成爲ManyToMany
,因爲這將是一個可怕的開銷。
謝謝!是的,它是冗長的,但它完成了這項工作。一句話:人們必須測試一個確切的'42,',也是(尾隨的逗號),因爲這個字段也是有效的。 – Boldewyn 2010-11-15 13:00:04