我遇到了一个奇怪的错误,我无法追踪它。堆栈跟踪也没有给出关于错误位置的任何线索。它只是给我标准的urlresolvers.py ViewDoesNotExist异常。以下是错误消息:
Could not import myapp.myview.views. Error was: No module named model
起初我以为我忘记在我的代码中的某个地方放置一个“s”,但在搜索整个代码库后,情况并非如此。
这是引用:
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
答案 0 :(得分:15)
根据您发布的内容,似乎错误发生在myapp.myview.views中。
你已经提到寻找“模特”拼写错误,这很好。您也可以尝试让Django验证您的模型以确保它们可以正确导入(在Django项目根目录中运行):
python manage.py validate
除此之外,只需继续关注myapp.myview.views中的导入,直到看到奇怪的东西为止。您可以通过打开shell来检查是否所有内容都可以正确导入:
python manage.py shell
尝试从那里导入和/或尝试。
除此之外,如果您发布完整的追溯,有人可能会更多地帮助您。祝你好运!
答案 1 :(得分:3)
我遇到了同样的错误,我解决了我的问题。如果您有forms.py,请确保所有表单字段都有效。出于某种原因,如果您的forms.py文件有表单字段错误,则会导致此异常。
答案 2 :(得分:0)
所以myapp/myview/views.py
导入model
并失败。 import语句是什么样的?
答案 3 :(得分:0)
您可以通过打开shell来检查是否所有内容都可以正确导入:
python manage.py shell
创建一个运行环境,就像有请求和响应一样。我相信如果你这样做,你可以了解这个问题,因为我已经得到它并管理它。
祝你好运。
答案 4 :(得分:0)
对我来说,无法导入的视图有一个糟糕的装饰者调用。尝试评论装饰者。
#@login_required(login_url=reverse('bad!'))
def view_name(request):
具体而言,反过来就是失败。将其更改为
@login_required(login_url='http://usatoday.com')
def view_name(request):
的工作原理。但是,奇怪的是,这个网址并不起作用:
@login_required(login_url='http://foxnews.com')
def view_name(request):
(是的,这是一个笑话)
我刚刚发现我应该使用reverse_lazy
,所以这是最终的解决方案:
@login_required(login_url=reverse_lazy('bad!'))
def view_name(request):
奇怪这会导致ViewDoesNotExist
错误。
答案 5 :(得分:0)
我遇到了类似的错误:
这是app的urls.py。
我忘了在urlpatterns的开头添加''
的解强>:
只需将''添加到urlpatterns 即可
来自django.conf.urls导入模式,include,url
urlpatterns = patterns('',
url(r'^profile<url name>/$','userprofile.views.user_profile<location of view>'),
)