环境详情:
我在模型中有以下内容:
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
文件夹中,我有__init__.py
导入MyModel
:
from MyApp.models.mymodel import MyModel
当我尝试运行服务器(python manage.py runserver
)或将模型同步到数据库(python manage.py syncdb
)时,出现以下错误:
AssertionError: ForeignKey(<class 'django.contrib.gis.measure.Distance'>) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string u'self'
我检查了django/contrib/gis/measure.py
,里面的Distance
模型似乎是一个有效的模型。 为什么Django认为Distance
不是有效的模型?
答案 0 :(得分:1)
django.contrib.gis.measure import Distance
不是模型,它只是一个扩展MeasureBase的类,它扩展了对象。
class MeasureBase(object):¬
STANDARD_UNIT = None¬
ALIAS = {}¬
UNITS = {}¬
LALIAS = {}¬
所以,&#34;为什么Django认为距离不是一个有效的模型?&#34; - 因为它不是一个模型。 Django中的模型是通过扩展models.Model
创建的。