Python Django抱怨Django.contrib.gis.measure.Distance不是有效的模型

Python Django抱怨Django.contrib.gis.measure.Distance不是有效的模型,python,django,django-models,Python,Django,Django Models,环境详情: Ubuntu GNOME 14.04 Python 2.7.6(使用virtualenv) Django 1.7(在virtualenv内部) Eclipse开普勒SR2(构建id 20140224-0627) PyDev 3.8.0.201409251235 我的模型中包含以下内容: from django.db import models from django.contrib.gis.measure import Distance ... class MyModel(mo

环境详情:

  • Ubuntu GNOME 14.04
  • Python 2.7.6(使用virtualenv)
  • Django 1.7(在virtualenv内部)
  • Eclipse开普勒SR2(构建id 20140224-0627)
  • PyDev 3.8.0.201409251235
我的模型中包含以下内容:

from django.db import models
from django.contrib.gis.measure import Distance
...

class MyModel(models.Model):
    ...
    distance = models.ForeignKey(Distance)
    ...
模型位于
/home/user/workspace/DjangoProject/MyApp/models/mymodel.py
中。在
models
文件夹中,我有一个导入
MyModel
\uuuu init\uuuu.py

从MyApp.models.mymodel导入mymodel

当我尝试运行服务器(
python manage.py runserver
)或将模型同步到数据库(
python manage.py syncdb
)时,出现以下错误:

AssertionError:ForeignKey()无效。ForeignKey的第一个参数必须是模型、模型名称或字符串u'self'


我检查了
django/contrib/gis/measure.py
,里面的
距离
模型似乎是一个有效的模型为什么Django认为距离不是有效的模型?

Django.contrib.gis.measure import Distance
不是一个模型,它只是一个扩展对象的MeasureBase的类

class MeasureBase(object):¬                                                                                                                       
   STANDARD_UNIT = None¬
   ALIAS = {}¬
   UNITS = {}¬
   LALIAS = {}¬

那么,“为什么Django认为距离不是一个有效的模型?”——因为它不是一个模型。Django中的模型是通过扩展
模型创建的。模型

为什么应用程序文件中有一个模型文件夹?我想我从没见过。当你将mymodel.py移动到myapp文件夹时,你会得到同样的结果吗?@ChrisHawkes从我读到的,这似乎是将大型models.py分解为多个文件的标准方法