0

假设我有这个 Django 设置:

appA - models.py
     - views.py
     - etc...

global - models.py

我想要的是从global.modelsin导入模型,以便它们被syncdb 和 southappA.models视为普通模型。appA

全球模型:

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.

实现此目的的正确方法是什么?

4

2 回答 2

0
from .models import Foo

class Foo(models.Model):
    #stuff

    class Meta:
        abstract = True
于 2013-03-18T12:45:16.060 回答
0

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

于 2013-03-18T12:48:42.647 回答