Django:如何从另一个模块中的定义创建模型
假设我有这个Django设置:Django:如何从另一个模块中的定义创建模型,django,django-south,django-orm,django-syncdb,Django,Django South,Django Orm,Django Syncdb,假设我有这个Django设置: appA - models.py - views.py - etc... global - models.py 我想要的是从appA.models中的global.models导入模型,以便syncdb和south将它们视为正常的appA模型 global.models: from django.db import models class Foo(models.Model): #django model stuff appA.m
appA - models.py
- views.py
- etc...
global - models.py
我想要的是从appA.models
中的global.models
导入模型,以便syncdb和south将它们视为正常的appA
模型
global.models:
from django.db import models
class Foo(models.Model):
#django model stuff
appA.models:
尝试1:
尝试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.
来自global.models导入Foo
Foo类(Foo):
通过
>>manage.py模式迁移appA--自动
>>错误:一个或多个模型未验证:
>>appA.Foo:'Foo_ptr'与尚未安装或是抽象的模型有关系。
实现这一点的正确方法是什么?global是一个python语句,您不应该使用它来命名您的包。尝试使用其他名称,不要忘记在目录中放置一个
\uuu init\uuuuuuuuuuuuupy
文件以将其转换为python包。>manage.py schemamigration appA--auto->Deleted model appA.Foo>>创建了0005\u auto\u del\u Foo.py。您现在可以使用:./manage.py migrate runengine应用此迁移为什么不将您的Foo作为抽象?
from .models import Foo
class Foo(models.Model):
#stuff
class Meta:
abstract = True
from .models import Foo
class Foo(models.Model):
#stuff
class Meta:
abstract = True