Djangoでif ((len(encoded) == 32 and ‘$’ not in encoded) or TypeError: object of type ‘NoneType’ has no len()

今回はDjangoを使用しているときにif ((len(encoded) == 32 and '$' not in encoded) or TypeError: object of type 'NoneType' has no len()というエラーが起きた時の対処法についてご紹介いたします。

使用しているDjangoのバージョンは2.2.1です。



Djangoでif ((len(encoded) == 32 and ‘$’ not in encoded) or TypeError: object of type ‘NoneType’ has no len()

まず、表題のエラーが起きる原因についてご紹介いたします。

私の場合は、passwordを使って認証する際に表題のエラーが起きました。

認証を行うとき、とあるユーザーのテーブルを見ていたのですが、認証に必要なpasswordの値がnullのままだったのです。

よって、ハッシュ化したパスワードを認証に使うユーザーのpasswordのフィールドに入れてあげると、表題のエラーが解消されました。

お試しあれ。

終わりに

今回は表題のエラーが起きた時の対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
ブログやTwitterでのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Django

Posted by ちこ