2010-08-16 5 views
6

Dostaję dziwny błąd i nie mogę go wyśledzić. Śledzenie stosu nie daje też żadnej wskazówki co do lokalizacji błędu. To tylko daje mi standardowy wyjątek urlresolvers.py ViewDoesNotExist. Oto komunikat błędu:django ViewDoesNotExist

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

Na początku myślałem, że zapomniałem umieścić „S” w modelach gdzieś w moim kodu, ale po rewizji całego kodzie, że nie jest to przypadek.

Oto 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 

Odpowiedz

15

Z tego, co pan pisał, wydaje się, że błąd jest w myapp.myview.views.

Wspomniałeś już o poszukiwaniu błędów w pisowni "modeli", co jest dobre. Można też spytać Django, aby potwierdzić swoje modele w celu zapewnienia, że ​​są one prawidłowo importable (run to w katalogu głównym projektu Django):

python manage.py validate 

poza tym, po prostu zachować w następstwie importu w myapp.myview.views dopóki zobacz coś dziwnego. Można sprawdzić, czy wszystko jest prawidłowo importable otwierając skorupę:

python manage.py shell 

I próby importowania i/lub spróbować rzeczy stamtąd.

Poza tym, ktoś może być w stanie pomóc Ci bardziej, jeśli zamieścisz pełne informacje zwrotne. Powodzenia!

+0

Błąd był w imporcie w całkowitej innej aplikacji. Używanie powłoki do importowania rzeczy po kolei działało. Dzięki za pomoc! – imns

0

Tak myapp/myview/views.py importuje model i kończy się niepowodzeniem. Jak wygląda komunikat importu?

+0

import myapp.myview.views – khateeb

+0

@khateeb: Minęły już dwa lata, ale jestem prawie pewien, że pytałem o instrukcję importu w 'views', a nie jak importować' myapp.myview.views'. – hughdbrown

3

Mam ten sam błąd i rozwiązałem mój problem. Jeśli masz forms.py, upewnij się, że wszystkie pola formularzy są prawidłowe. Z jakiegoś powodu, jeśli Twój plik forms.py zawiera błędy pola formularza, powoduje to wyjątek.

0

Można sprawdzić, czy wszystko jest prawidłowo importable otwierając skorupę:

python manage.py shell 

który tworzy środowisko działa właśnie tak samo jak gdzie jest żądanie i odpowiedź. Wierzę, że możesz rzucić światło na to pytanie, jeśli to zrobisz, ponieważ kiedykolwiek to dostałem i udało mi się.

Powodzenia z tobą.

0

Dla mnie widok, który nie mógł zostać zaimportowany, miał wadliwe wywołanie dekoratora. Spróbuj skomentować dekoratora.

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

W szczególności zawieszenie się nie powiedzie. Zmiana tego na

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

działa.Ale, o dziwo, ten adres URL nie działa:

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

(tak, że to żart)

Właśnie odkryłem, że należy używać reverse_lazy, więc jest to najlepsze rozwiązanie:

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

Dziwne, może to spowodować błąd ViewDoesNotExist.

0

Miałem podobny błąd:
To był adres urls.py aplikacji.
zapomniałem dodać '' w zapalania tam wzorce
ROZWIĄZANIE:
wystarczy dodać '', aby tam wzorce z django.conf.urls importować wzory, należą url

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