Djangoのbootstrap-datepicker-plusのモジュールがimportできないときの対処法

Djangoにおいて日付フォームを実装する際に手っ取り早くbootstrap-datepicker-pluを使いたいと考える人はそれなりにいらっしゃるかと思います。

しかし、ブログ記事の通りにやろうとしたらなぜかDatePickerInputや、TimePickerInput, DateTimePickerInput, MonthPickerInput, YearPickerInputなどなどのメソッドがimportできない!エディタに認識されないと嘆いてる人もいるかと思います。

そこで今回はこれらのモジュールを正しくimportする方法についてちゃちゃっと解説いたします。
別になんら難しいことではありませんので、すぐに解決できます。

ぱぱっと解決策だけ知りたい方はこちらから

スポンサーリンク
目次

現象

ソースコードに以下のように記載したのに起動時にエラーが出てしまう!というのが今回の現象です。

エラー :

Exception has occurred: ImportError
cannot import name ‘DatePickerInput’ from ‘bootstrap_datepicker_plus’

要はこのエラーは「 bootstrap_datepicker_plus のパッケージを見に行ったけど、DatePickerInputなんてクラスありませんけど!?」っていうエラーです。

最初は、「えっないの!?入れるパッケージ間違えたかな…」なんて不安になるかもしれませんが、そうじゃありません。

原因

原因はパッケージの階層が増えていることにあります。

実際にライブラリを確認してみると “widgets.py”というのが増えてるのがわかるとおもいます。

そのため、ブログ等で解説されているimport方法だと上の階層の「bootstrap_datepicker_plus」までしか見てくれないので、当然そこにはないPickerInputたちがエラーを吐き出してしまいます。

解決策

さて、原因がわかったところで対策は至極簡単ですね。

import文を以下のように変えてあげるだけです。

from bootstrap_datepicker_plus.widgets import DatePickerInput

これ、実はちゃんと配布しているGitHubには書いてあるんですよね…

ちゃんと使う時は公式を見る癖をつけないとですね(戒め)

簡単でしたが今回はここまでです。

大した内容ではありませんが、こういうので10分でも詰まってしまうとイラっとすることもあると思いますので、この記事が皆様の生得領域に少しの平穏でももたらしてくれれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

本業ではPHPを使ったWEBアプリやJavaを使用した基幹アプリを作成しております。Pythonは個人的に勉強しており、E資格を取ったりしたおかげで、業務でAIの研究とかも任されるようになりました。学習のアウトプットのために本サイトを運営しておりますが、これからPythonを学ぶという人のお役に立てればいいなと思います。わからないことや調査して記事にしてほしいことがございましたらご連絡いただけると幸いです。

コメント

コメントする

目次
閉じる