我有一個項目whith多個應用程序。 所以,當我想從另一個應用中的一些代碼,我用Django從其他應用程序進口代碼
from app.pyfile import *
或
from app.pyfile import specific_function
更具體: 我有一個名爲「commonapp」在那裏我有我使用一些常見的東西的應用在所有其他應用程序中。在這個應用程序中,我有一個common.py文件,我有一些功能,其中包括一個名爲my_response(request,template,context)
的函數,這個函數導致NameError。現在這個特定的函數總是被其他函數調用。
例如:
from commonapp.common import *
def myInfo(request):
context = {}
data = ''
data = SomeModel.objects.all()
template = 'path/to/info.html'
context['data'] = data
a = my_response(request,template,context)
return a
這就提出了一個NameError 「全局名稱my_response沒有定義」
我知道NameError是什麼,但爲什麼在這裏?如果某些東西無法導入,甚至「全局名稱a未定義」,我會期待導入錯誤。
我在這裏錯過了什麼?
UPDATE:
這裏是表示將my_response(request,template,context)
是與該應用程序的文件結構的屏幕截圖。
呃,什麼?你會得到一個NameError,因爲my_response沒有在那裏定義或從常規導入。你對此不甚瞭解? –
當我嘗試'從commonapp.common導入my_response'時,我得到一個ImportError。我無法理解,當我從其他應用程序導入的其他所有內容都被導入時,這是如何實現的。 –
但這兩個錯誤都顯示'commonapp.common'不包含名爲'my_response'的函數。這怎麼不清楚?也許你應該顯示那個文件。 –