Django:如何从另一个模块中的定义创建模型

时间:2013-03-18 12:40:03

标签: django django-south django-orm django-syncdb

假设我有这个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.

完成此任务的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

from .models import Foo

class Foo(models.Model):
    #stuff

    class Meta:
        abstract = True

答案 1 :(得分:0)

global 是一个python语句,你不应该用它来命名你的一个包。尝试使用其他名称,不要忘记在目录中放入__init__.py文件,将其转换为python包。