0

Django 一直告诉我这一点,即使在重新编码所有内容之后,我似乎也无法在 Google 上找到帮助。项目文件夹如下:

$ tree
.
|-- project
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.py~
|   |-- settings.pyc
|   |-- urls.py
|   |-- urls.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
|-- city
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- models.py
|   |-- models.pyc
|   |-- tests.py
|   `-- views.py
|-- course
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- models.py
|   |-- models.pyc
|   |-- tests.py
|   `-- views.py
|-- manage.py
|-- perk
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- models.py
|   |-- models.pyc
|   |-- static
|   |-- tests.py
|   `-- views.py
|-- preuniversity
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- models.py
|   |-- models.py~
|   |-- models.pyc
|   |-- tests.py
|   `-- views.py
`-- user
    |-- __init__.py
    |-- __init__.pyc
    |-- models.py
    |-- models.py~
    |-- models.pyc
    |-- tests.py
    `-- views.py

结构没有改变,我也没有修改任何东西,除了models.py,它是:

$ cat city/models.py
from django.db import models

class State(models.Model):
    acronym = models.CharField(max_length=2)
    name = models.CharField(max_length=32)

class City(models.Model):
    name = models.CharField(max_length=32)
    state = models.ForeignKey(State)

我只是跟着Django教程,不多不少,也没有解决办法。我在每个应用程序上都使用了 startapp(而不只是从另一个应用程序复制和粘贴),并且应用程序名称在 settings.py 中。

如果我删除对城市的所有引用(外键、导入和从 installed_apps 中删除),它会抱怨下一个应用程序(课程)。

4

3 回答 3

1

我假设您使用的是 django 1.4 或更高版本,因为您的项目文件夹中有什么。

您是否使用 ?创建了顶级目录django-admin.py startproject?我没有__init__.py在顶层看到该文件,尽管project带有settings.pyand的目录在urls.py那里。__init__.py创建一个在顶层调用的空文件(的兄弟manage.py),看看是否有帮助。

于 2013-07-02T22:55:04.367 回答
0

所以我设法修复了错误。也许我忘记了关于这个问题的一些重要信息,但这里是解释:

我下载了 PyDev for Eclipse 并从头开始重建项目。因此,当我编写导入时,Eclipse 抱怨它不正确。好吧,我回到了 Django 教程并且有import city,所以我是对的。我接受了 Eclipse 的建议,它变成了from city.models import City,一切正常。因此,我使用旧项目进行了测试并更改了每个导入,并且验证和同步没有错误。

现在我很困惑,Django 文档怎么会出错?或者这是 Python 版本还是发行版的特性?好吧,没关系,它现在正在工作。谢谢大家:P

于 2013-07-03T18:20:12.510 回答
0

将您的城市(您要导入的文件)放在主应用程序的根目录中。如果 IDE(例如 PyCharm)不会担心导入这个模块——那么问题就出在路径上。

我一下子就解决了这个问题。问题路径是。

于 2013-07-02T18:01:44.377 回答