質問: 現在以下の環境で作業を行っております。 Python3.5.1 Django1.9.6 「MyDjangoWorks」という作業ディレクトリを作成し、その中で「virtualenv env」とコマンドを実行し、VirtualEnv環境を構築しました。 今回FormPreviewを使いたかったため、django-formtoolsをpipでインストールを行った時に以下のメッセージが表示されました。 ``` Requirement already satisfied (use --upgrade to upgrade): Django>=1.7 in ./env/lib/python3.5/site-packages (from django-formtools) ``` この時点で少し気にはなっていたのですが、そのまま作業を続けていきました。 FormPreviewを使って確認画面のあるフォームを作成し、runserverコマンドでDjangoを立ち上げたところ、以下のメッセージが表示されました。 ``` /vagrant/MyDjangoWorks/env/lib/python3.5/site-packages/django/shortcuts.py:45: RemovedInDjango110Warning: The context_instance argument of render_to_string is deprecated. using=using) ``` よく見てみると、env/lib/python3.5/site-packagesにある「formtools」の中の「preview.py」とこちらの「preview.py」が違うようで、 原因はレンダリングの際、前者の「preview.py」は「render_to_response」を使用しているだからと思っています。 なぜ後者の「preview.py」を含んだ「django-formtools」がインストールされないのでしょうか。 インストールの際何か別の方法があるのでしょうか。 特にエラーが出るわけではないのですが、気になるため、解決方法があればと思い質問させていただきました。 わかる方がいらっしゃいましたら、ご回答頂けるよう よろしくお願いいたします。
回答: ``` $ pip install django-formtools ``` (以下の回答は、上記の形式でインストールしたという前提で書いています) `pip`コマンドでインストールしたりする際には、PyPIというパッケージ管理サービスを最初に参照します。 PyPIに登録されているdjango-formtoolsはこの回答を書いた時点で、2015/3/31に登録されたバージョン1.0が最後に登録されたものになります。 ここでgithubにあるpreview.pyの履歴を見てみると、バージョン1.0以降に2回ほど更新されています。 githubにある最新のコードはPyPIに登録されているとは限らないため、想定しているコードがインストールされていない原因となるのがここになります。 github上の最新コードで構成されたdjango-formtoolsを使いたい場合は、 ``` $ pip install https://github.com/django/django-formtools/archive/master.zip ``` というコマンドでインストールできます。