2017-11-24 6 views
0

Djangoのモジュール性を利用し、pipを使用してインストールしたいくつかの外部アプリケーションを統合したいと思います。しかし、どのようにURL、ビュー、モデルを統合し、使用したり、拡張したりできるのかを理解するのが難しいです。この件に関してはそれほど多くはありませんが、私は理由を理解できません。Django:pipでインストールされたアプリケーションの使用方法

はのはchanguito-cartの例を見てみましょう:

  1. 私はルートに「チャンギート」という名前のフォルダを作成し、ここでのURL /ビューを作成する、または私はちょうどそれのように名前の新しいアプリを作成する必要がありますか?

  2. settings.pyでは、インストールしたアプリリストに「changuito」を追加しました。「changuito」という名前のモジュールはありません。正しく追加するにはどうすればいいですか?

  3. これを統合するために必要な基本的な手順は何ですか?

答えて

1

アプリをインストールしてINSTALLED_APPSに追加した後、あなたはうまくいくはずです。 INSTALLED_APPSに追加する必要のある名前がパッケージ名と異なる場合があります。そのようなケースはドキュメントから明らかにする必要があります。そうでない場合は、モジュール構造自体を調べる必要があります。あなたの場合、パッケージは "django-changuito"と呼ばれ、INSTALLED_APPSに "changuito"を含めなければなりません。この特定のパッケージはMIDDLEWARE_CLASSES設定に依存することにも注意してください。ドキュメントをお読みください!

正しい仮想環境を使用している場合は、インストール時に有効になっていることを確認してください。

通常、外部アプリ自体は変更しません。これは、上流から違って道路を壊すので、非常に危険です。外部アプリのクラスをサブクラス化または拡張する場合は、拡張またはサルのパッチ適用前にこれらのクラスを独自のアプリにインポートする必要があります。この場合、別のアプリで別のクラスを作成します。

最後に、一部のアプリではテンプレートを拡張できます。 Djangoはまずプロジェクト構造内のテンプレートと静的なものを探します。外部アプリのフォルダ構造を再作成し、新しいテンプレートを正確な場所に配置するとDjangoはそれらを使用します。

+0

この特定の例について - changuito:INSTALLED_APPSとMIDDLEWAREに追加しましたが、changuitoフォルダ内に存在していますが、私のchanguito.urlsモジュールが見つかりませんでした。 –

+0

私はアプリのフォルダに__init__.pyファイルを追加する必要があったようです。 –

+0

はい、あなたはinitを追加する必要があります(例えば、 .pyをモジュールとして認識されるべきフォルダに置き換えます。 –

関連する問題