質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Q&A

解決済

1回答

852閲覧

Djangoのモデルを有効にするときのプロジェクトへの教え方が分からない

esklia

総合スコア81

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

0グッド

0クリップ

投稿2020/01/20 09:45

djangoのアプリケーション作成したことをsettings.pyに伝えるときの指定の仕方について質問です。

cmsアプリケーションを作成し、apps.pyにclass CmsConfigがあることをmybook/settings.pyに書くとき、

INSTALLED_APPSに

'cms.apps.CmsConfig',

と記載しますよね?これは本来であれば、../cms/apps.pyなので、
INSTALLED_APPSには

../cms/apps.CmsConfig

のようになるのが自然かと思われるのですが、なぜ相対パスでも絶対パスでもない方法でdjangoがcmsconfigを認識できるのでしょうか?

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DjangoのINSTALLED_APPSに記載されてるappsを読み込む際に from importlib import import_moduleを使ってます

Djangoコアの site-packages/django/apps/vongig.py内では以下のようにモジュールを読み込んでます

@classmethod def create(cls, entry): """ Factory that creates an app config from an entry in INSTALLED_APPS. """ try: # If import_module succeeds, entry is a path to an app module, # which may specify an app config class with default_app_config. # Otherwise, entry is a path to an app config class or an error. module = import_module(entry)

INSTALLED_APPSの中身を与えてあげると、また二パタンがあります
INSTALLED_APPSに cmsだけ書いてるか、cms.apps.CmsConfigconfigまで書いてるか、

cmsだけ記載してる場合、以下のようになります
module = import_module("cms")

cms.apps.CmsConfigの場合
mod_path, _, cls_name = "cms.apps.CmsConfig".rpartition('.')
mode_path== "cms.apps"
module = import_module(mode_path)

投稿2020/01/21 02:22

harinezumi.py

総合スコア282

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

esklia

2020/01/25 13:08

完全に理解できてはいないのですが、どちらのように設定したとしても例外処理で読み込まれるという認識であっていますでしょうか?
esklia

2020/01/28 13:35 編集

わざわざ記事にしてくださり感謝申し上げます。読ませていただき、無事理解することができました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問