假设我有这个Django设置:
appA - models.py
- views.py
- etc...
global - models.py
我想要的是从global.models
appA.models
导入模型,以便它们被syncdb和south视为普通的appA
模型。
global.models:
from django.db import models
class Foo(models.Model):
#django model stuff
appA.models: 试试1:
from global.models import *
>>manage.py schemamigration appA --auto
>>does not see Foo
尝试2:
from global.models import Foo
class Foo(Foo):
pass
>>manage.py schemamigration appA --auto
>>Error: One or more models did not validate:
>>appA.Foo: 'foo_ptr' has a relation with model <class 'global.models.Foo'>, which has either not been installed or is abstract.
完成此任务的正确方法是什么?
答案 0 :(得分:0)
from .models import Foo
class Foo(models.Model):
#stuff
class Meta:
abstract = True
答案 1 :(得分:0)
global 是一个python语句,你不应该用它来命名你的一个包。尝试使用其他名称,不要忘记在目录中放入__init__.py
文件,将其转换为python包。