2010-08-16 10 views
6

Ho un errore strano e non riesco a rintracciarlo. La traccia dello stack non fornisce alcuna indicazione sulla posizione dell'errore. Mi sta solo dando l'eccezione standard di urlresolvers.py ViewDoesNotExist. Ecco il messaggio di errore:django ViewDoesNotExist

Could not import myapp.myview.views. Error was: No module named model 

In un primo momento ho pensato che ho dimenticato di mettere una "s" sui modelli da qualche parte nel mio codice, ma dopo una ricerca di tutto il codice di base, che non è il caso.

Ecco il trackback:

File "C:\Python25\Lib\site-packages\django\core\handlers\base.py" in get_response 
    91.       request.path_info) 
File "C:\Python25\Lib\site-packages\django\core\urlresolvers.py" in resolve 
    216.      sub_match = pattern.resolve(new_path) 
File "C:\Python25\Lib\site-packages\django\core\urlresolvers.py" in resolve 
    216.      sub_match = pattern.resolve(new_path) 
File "C:\Python25\Lib\site-packages\django\core\urlresolvers.py" in resolve 
    216.      sub_match = pattern.resolve(new_path) 
File "C:\Python25\Lib\site-packages\django\core\urlresolvers.py" in resolve 
    123.    return self.callback, args, kwargs 
File "C:\Python25\Lib\site-packages\django\core\urlresolvers.py" in _get_callback 
    132.    raise ViewDoesNotExist("Could not import %s. Error was: %s" % (mod_name, str(e))) 

Exception Value: Could not import myapp.myview.views. Error was: No module named model 

risposta

15

Da quello che hai postato, sembra che l'errore è in myapp.myview.views.

Hai già parlato di errori ortografici di "modelli", il che è positivo. Si potrebbe anche provare a chiedere Django per convalidare i modelli per garantire che essi siano adeguatamente importabili (eseguire questo nella root del progetto Django):

python manage.py validate 

Oltre a ciò, basta continuare a seguire le importazioni di cui, fino a myapp.myview.views vedere qualcosa di strano È possibile controllare per vedere se tutto è corretto importabile aprendo una shell:

python manage.py shell 

E il tentativo di importazione e/o provare le cose da lì.

Oltre a ciò, qualcuno potrebbe essere in grado di assisterti di più se pubblichi il traceback completo. In bocca al lupo!

+0

L'errore era in un'importazione in un'altra app totale. Usare la shell per importare le cose una alla volta ha funzionato. Grazie per l'aiuto! – imns

0

Quindi myapp/myview/views.py importazioni model e non riesce. Come si presenta la dichiarazione di importazione?

+0

import myapp.myview.views – khateeb

+0

@khateeb: Sono passati due anni, ma sono abbastanza sicuro che stavo chiedendo l'istruzione import in 'views' e non come importare' myapp.myview.views'. – hughdbrown

3

Ho avuto lo stesso errore e ho risolto il mio problema. Se possiedi un forms.py, assicurati che tutti i campi relativi ai moduli siano validi. Per qualche ragione, se il tuo file forms.py ha errori di campo, allora causa questa eccezione.

0

È possibile controllare per vedere se tutto è corretto importabile aprendo una shell:

python manage.py shell 

che crea un ambiente funzionante, proprio come lo stesso dove c'è richiesta e risposta. Credo che tu possa far luce su questa domanda se lo fai, perché l'ho mai avuto e l'ho gestito.

Buona fortuna.

0

Per me, la vista che non è possibile importare ha avuto una cattiva chiamata decoratore. Prova a commentare il decoratore.

#@login_required(login_url=reverse('bad!')) 
def view_name(request): 

In particolare, il contrario non funziona. Cambiarlo in

@login_required(login_url='http://usatoday.com') 
def view_name(request): 

opere.Ma, stranamente, questo URL non funziona:

@login_required(login_url='http://foxnews.com') 
def view_name(request): 

(sì che è uno scherzo)

Ho appena scoperto dovrei usare reverse_lazy, quindi questa è la soluzione definitiva:

@login_required(login_url=reverse_lazy('bad!')) 
def view_name(request): 

Strano, ciò potrebbe causare un errore ViewDoesNotExist.

0

Ho avuto un errore simile:
Era urls.py dell'app.
Ho dimenticato di aggiungere '' in partenza di urlpatterns
SOLUZIONE:
basta aggiungere '', alle urlpatterns da django.conf.urls importare modelli, comprendono, url

urlpatterns = patterns('', 
    url(r'^profile<url name>/$','userprofile.views.user_profile<location of view>'), 
)