1

django mptt の実装に問題があります。

これが私のモデルです:

   class Company(models.Model):
       name = models.CharField( max_length=100)
       parent = models.ForeignKey('self', null=True, blank=True, related_name='children')

   mptt.register(Company, order_insertion_by=['name'])

class Financials(models.Model):
    company = models.ForeignKey(Company, related_name="financials")
    year = models.IntegerField()
    revenue = models.DecimalField(max_digits = 10, decimal_places = 2)

だから私が見ているのは、財務を子として会社に追加する方法です。mptt.register(Financials, parent = Company)もちろん、エラーが発生することを試しました。

したがって、mytree 構造は次のようになります。

company1
....................> Financial1
--------------------> Financial 2

company2
-------------------->Financial 3

ありがとう

4

2 に答える 2

1

django-polymorphic_treeをお勧めします

于 2012-10-11T17:53:56.263 に答える
1

Django-mptt は、同じツリー内の複数のタイプのオブジェクトをサポートしていません。Financial と Company の両方を同じ親クラスから継承させ、その親クラスのインスタンスからツリーを構築することができます。親クラスのインスタンスを適切なサブクラスにキャストできるように、親クラスに「コンテンツ タイプ」フィールドを格納する必要があります。ただし、継承の精神に反するため、これはひどいハックです。Financial は会社ではなく、会社の属性です。正解は、ForeignKey を使用できるように ACL の設計を修正することです。

于 2009-02-04T17:37:51.270 に答える