2011-12-08 12 views
0

はのは、以下の私が持っているとしましょう:Djangoの抽象モデル

class Base(Model): 
    m2m_1 = ManyToManyField("SomeModel1") 
    m2m_2 = ManyToManyField("SomeModel2") 

    class Meta: 
     abstract = True 

class A(Base): 
    def __init__(self): 
     super(A, self).__init__() 
    pass 

class B(Base): 
    def __init__(self): 
     super(B, self).__init__() 
    pass 

をしかし、それはM2M分野のための関連の名前が必要ですので、私はそれを行うことはできません。しかし、それはモデルが抽象であり、DjangoがAとBの両方のモデルに同じ名前を作成しようとするので、それは役に立ちません。

モデルごとに関連する名前を個別に指定する方法や、まったく使用しない方法もあります。

答えて

7

答えは(セクションの下に "related_nameには注意してください" と題する)docs for abstract classesに右である:

m2m = models.ManyToManyField(OtherModel, related_name="%(app_label)s_%(class)s_related")