LowerCaseCharField を実装しました。より良い実装の提案をいただければ幸いです。
from django.db.models.fields import CharField
class LowerCaseCharField(CharField):
"""
Defines a charfield which automatically converts all inputs to
lowercase and saves.
"""
def pre_save(self, model_instance, add):
"""
Converts the string to lowercase before saving.
"""
current_value = getattr(model_instance, self.attname)
setattr(model_instance, self.attname, current_value.lower())
return getattr(model_instance, self.attname)
実際、私たちは次のものを持っているのが大好きです:
> modelinstance.field_name="TEST"
> print modelinstance.field_name
'test'
現在の実装では、保存時にのみ小文字に変換されます。