DjangoのモデルのCharFieldで小文字のみを使用する方法
pythonのwebフレームワークであるDjangoにおいて,モデルのCharFieldで登録される文字を小文字に限定する方法について調べたので,メモとして残しておきます.
やり方
オブジェクトを保存する際に文字列を小文字に変換すればよく,
モデルクラスのsave
メソッドを上書きすることで実現可能です.
以下はUser
クラスのusername
フィールドを小文字にする例です.
class User(models.Model): username = models.CharField(max_length=100, unique=True) password = models.CharField(max_length=64) def save(self, *args, **kwargs): self.username = self.username.lower() return super(User, self).save(*args, **kwargs)