gpt4 book ai didi

python - 使用 django mptt 时出现问题

转载 作者:行者123 更新时间:2023-12-01 06:20:03 27 4
gpt4 key购买 nike

我在实现 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)

所以我正在研究如何将 Financial 作为子项添加到 Company 中。我尝试了 mptt.register(Financials, Parent = Company) 这当然给了我错误。

所以 mytree 结构将是:

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

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

谢谢

最佳答案

Django-mptt 不支持同一棵树中存在多种类型的对象。您可以让 Financial 和 Company 都从同一个父类继承,然后从该父类的实例构建树。您需要在父类上存储“内容类型”字段,以便可以将父类的实例转换为正确的子类。但这是一个严重的黑客行为,因为它违反了继承的精神。财务公司不是公司,而是公司的属性。正确的答案是修复您的 ACL 设计,以便您可以使用外键。

关于python - 使用 django mptt 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/507006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com