2017-06-04 9 views
0

私はDjangoを使い慣れています(これはおそらくPython3の質問です)。また、私はError importing Python moduleのような他の同様の質問を読んだ。Django:カスタムPython3クラスのインポートに関する問題

私は次のような構造を持つディレクトリにあります。

-- my_class

-- -- __init__.py

-- -- custom_class_1.py

-- -- custom_class_2.py

ファイル内custom_class_2.pyを行があります

from custom_class_1 import Custom_Class_1 
class Custom_Class_2: 
    self.thing = Custom_Class_1() 

すなわち、一つのクラスは、他の人の上に構築されます。建て

from custom_class_1 import Custom_Class_1 
ImportError: No module named 'Custom_Class_1' 

私はクラスを定義するとき、私はニシキヘビの規則に従わなかったと思わせる、:以前リンク質問

これは、このエラーを吐き出すためにDjangoのサーバーの原因となるからsolutionを使用して

(ただし、すべて同じディレクトリにあります)。

私は何が間違っていましたか?どのように修正しましたか?

+2

'.custom_class_1 import Custom_Class_1'(相対インポートを示す' custom_class_1 'の前にドットがあります)を試してみるとうまくいきます。 – MSeifert

+0

Djangoのエラーメッセージが意味をなさない - それは 'Custom_Class_1'が_module_です。実際のエラーメッセージは本当ですか? –

+0

@MSeifertはうまくいくようです! – SumNeuron

答えて

1

あなたはrelative import (see PEP 328 for more details)を使用することができます。

from .custom_class_1 import Custom_Class_1 

.custom_class_1の前でモジュールcustom_class_1は、同じディレクトリからインポートする必要があることのPythonを伝えます。

+0

これは' views.py'ファイル内で動作しますが、 '/ template/my_app/index.html'ファイル? – SumNeuron

+0

あなたは新しい質問をしてそこに関連ファイルを含めることができますか(コメントの新しい質問にリンクしてください)。私はコメントでこれに答えることができるかどうか分からない(あなたのファイルを知らずに)。 – MSeifert

+0

うわー、ここはhttps://stackoverflow.com/questions/44353505/django-import-custom-class-in-template-html-instead-of-viewです – SumNeuron

0

Djangoプロジェクトのインポートでは、プロジェクトルートからモジュールパスを使用する必要があります。 my_classがあなたのDjangoプロジェクトのルートにある場合 たとえば、 はその後、あなたがCustom_Class_2をインポートすることができます:ところで

from my_class.custom_class_2 import Custom_Class_2 

、それは名前に「クラス」と名のPythonモジュールやクラスに奇妙です。

関連する問題