filterでnullじゃないテキストを取得する
なんかdjangoの仕様でblank=True且つnull=Trueなstringを保存すると値はNULLでなく""(空文字)が入るようで。
数値型だとちゃんとNULLが入っているのですが。
これがけっこう面倒くさいのです。
たとえば
class Blog(models.Model): title = models.CharField(max_length=255, null=True, blank=True) content = models.TextField() number = models.IntegerField(null=True, blank=True)
とした場合、contentには何かしらの値を入れなければいけないのですがそれ以外に何も入れないでsave()すると
前述のようにtitleは""(空文字)numberはNULLが入る
numberにはNULLが入ってるのでfilterを利用するときにfilter(number__isnull=False)とか指定できるわけですが
filter(title__isnull=True)としても先ほどのレコードは引っかかりません・・・
ということでどうしたものかと思ったのですが
exclude(title__exact="")とすることで空文字のtitleを除くことができました。
気づくまでに時間かかった!!!