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分解为多个文件的标准方法