yiskw note

機械学習やプログラミングについて気まぐれで書きます

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)

参考