0

私はこれらの2つのモデルを持っています:

class Interface(models.Model):
    # fields
class OldInterface(models.Model):
    interface = models.ForeignKey(_base,related_name='old_versions')
    class Meta:
        abstract = True

それらの「空間的」および「機能的」バリアントによって継承されます:

class SpatialInterface(Interface):
    # fields
class OldSpatialInterface(OldInterface):
    _base = SpatialInterface

class FunctionalInterface(Interface):
    # fields
class OldFunctionalInterface(OldInterface):
    _base = FunctionalInterface

もちろん、_baseが親モデルで定義されていないため、私のコードは失敗します。

私の質問は:子モデルからターゲットモデルに読み取るようにForeignKeyに指示する方法またはトリックはありますか?

または、より一般的には、親クラスで、子クラスにある変数を動的に読み取る方法はありますか?

4

1 に答える 1

0

私の調査によると、syncdbがmodels.pyを解析する方法__init__()が呼び出されないため、これは不可能だと思います。そのため、子に基づいてForeignKeyターゲットを動的に設定する方法が見つかりませんでした。

于 2012-11-07T08:38:33.870 に答える