環境的詳細信息:Django的抱怨django.contrib.gis.measure.Distance不是一個有效的模型
- 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
文件夾中,我有一個__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
不是一個有效的模型?
爲什麼在應用程序文件中有模型文件夾?我認爲我從未見過這種情況。將mymodel.py移入myapp文件夾時,您會得到相同的結果嗎? – 2014-10-17 20:48:02
@ChrisHawkes從我讀過的內容來看,這似乎是將大型models.py分解爲多個文件的標準方式 – 5ELuqLbb85Hk 2014-10-18 00:07:25