在linux上ViewDoesNotExist错误,但在windows上使用相同的代码,为什么?

2024-04-26 14:09:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在努力学习django,我一直在胡思乱想在本地机器上建立一个网站的想法。我遇到了下面的错误,我似乎无法解决。你知道吗

当我在windows机器上运行development server时,一切都按我所期望的那样工作,然而,当我在linux机器上运行(相同)代码时,会出现ViewDoesNotExist错误。然而,这种观点肯定存在于视图.py文件和路径的设置肯定是正确的(正如我从回溯中看到的)。你知道吗

我读到,出于某种原因,django有时会提供这些错误消息,而实际上它与其他东西有问题,可能是由视图.py所以我跑了

python manange.py shell

尝试导入我的视图,但失败了。但是我的视图.py文件不会从我的型号.py因此我尝试手动导入它们,发现只有一个模型可以正确导入,而另外两个模型总是会失败,例如在尝试运行时:

from racing.models import Event

我得到以下错误

ImportError: cannot import name Event

但是,当我跑步时:

from racing.models import Race

它工作得很好,我可以在shell中与Race类一起工作

好像连他们都看不见?所有代码都可以在这里找到: https://github.com/sj175/ulmk

如果有人能帮我解决这个错误,这样我就可以继续在我的linux机器上使用django了,我将非常感激。你知道吗


Tags: 文件django代码frompy模型import机器
2条回答

我认为你的文件夹结构有问题。你的管理.py位于cms内部,而赛车位于cms外部

一定要看一下文件 django docs

使用djangos manage.py startproject应该创建如下目录:

cms/
    manage.py
    cms/
        __init__.py
        settings.py
        urls.py
        wsgi.py

看起来cms就是这样。但是看起来你的apps是一个比它们应该高的目录:

cms/
    manage.py
    cms/
        __init__.py
        settings.py
        urls.py
        wsgi.py
coltrane/
racing/
tagging/

默认情况下,我认为这些应用程序应该在cms目录中,即在django项目中

cms/
    manage.py
    cms/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    coltrane/
    racing/
    tagging/

所以我猜你的应用程序在windows的pythonpath上,而在linux上,它们不是

相关问题 更多 >