J'ai un projet avec plusieurs applications. Alors, quand je veux un code d'une autre application que j'utiliserDjango importer le code à partir d'autres applications
from app.pyfile import *
ou
from app.pyfile import specific_function
Pour être plus précis: J'ai une application appelée « commonapp » où j'ai des choses communes que j'utilise dans toutes les autres applications. Dans cette application, j'ai un fichier common.py où j'ai quelques fonctions, y compris une fonction appelée my_response(request,template,context)
, qui est l'un provoque NameError. Maintenant, cette fonction particulière est toujours appelée à l'intérieur d'autres fonctions.
par exemple:
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
Cela soulève une NameError "my_response nom global n'est pas défini"
Je sais ce qu'est un NameError est, mais pourquoi ici? Je m'attendrais à un ImportError si quelque chose n'a pas pu être importé ou même que "le nom global a n'est pas défini".
Qu'est-ce qui me manque ici?
MISE À JOUR:
Voici une capture d'écran montrant où la my_response(request,template,context)
est et la structure de fichier de l'application.
Euh, quoi? Vous obtenez une erreur NameError car my_response n'est pas défini ici ou importé depuis common. Qu'est-ce que tu ne comprends pas à ce sujet? –
Lorsque j'essaie de faire 'depuis commonapp.common import my_response', j'obtiens une ImportError. Je n'arrive pas à comprendre comment cela est possible lorsque toutes les autres choses que j'ai importées d'autres applications sont importées. –
Mais ces deux erreurs montrent que 'commonapp.common' ne contient pas de fonction appelée' my_response'. Comment est-ce que ce n'est pas clair? Peut-être que vous devriez montrer ce fichier. –