0

私がこのDjangoセットアップを持っているとしましょう:

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

global - models.py

私が欲しいのは、からモデルをインポートしてglobal.models、syncdbとsouthによってappA.models通常のモデルとして扱われるようにすることです。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.

これを達成するための正しい方法は何ですか?

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 ステートメントです。パッケージの 1 つに名前を付けるために使用しないでください。__init__.py別の名前を使用してみてください。ファイルをディレクトリに配置して、それを Python パッケージに変換することを忘れないでください。

于 2013-03-18T12:48:42.647 に答える