0

我目前正在尝试学习 django,并且一直在琢磨在本地机器上建立网站的想法。我遇到了以下我似乎无法解决的错误。

当我在我的 Windows 机器上运行开发服务器时,一切都按我的预期工作,但是,当我在我的 linux 机器上运行(相同的)代码时,我得到一个 ViewDoesNotExist 错误。但是,视图肯定存在于 views.py 文件中,并且路径肯定设置正确(正如我从回溯中看到的那样)。

我读过,由于某种原因,django 有时会提供这些错误消息,而实际上它有其他问题,也许是由 views.py 文件导入的,所以我跑了

python manange.py shell

并试图导入我的观点,但失败了。但是我的views.py文件除了从我的models.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,我将不胜感激。

4

2 回答 2

1

使用 djangosmanage.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上,它们不是

于 2013-08-12T16:24:57.770 回答
1

我认为您的文件夹结构有问题。您的 manage.py 位于cms内,而赛车位于cms之外

请阅读文档 django docs

于 2013-08-12T16:30:20.657 回答