首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:“用户”对象没有属性'get_descendant_count‘\ django-mptt

AttributeError:“用户”对象没有属性'get_descendant_count‘\ django-mptt
EN

Stack Overflow用户
提问于 2018-05-28 19:52:21
回答 1查看 754关注 0票数 0

有人能帮我解决下一个问题吗。我在Django项目中使用吉安戈-应用程序。我想制作相关用户的树。对于这个任务,我决定用下一段代码创建Profile模型。

代码语言:javascript
复制
from mptt.models import MPTTModel, TreeForeignKey

class Profile(MPTTModel):
    user = models.OneToOneField(
        User,
        on_delete=models.CASCADE,
    )
    referral = models.OneToOneField(
        Referral,
        null=True,
        on_delete=models.CASCADE,
    )
    parent = TreeForeignKey(
        User,
        on_delete=models.CASCADE,
        null=True, blank=True,
        related_name='children'
    )

class MPTTMeta:
    order_insertion_by = ['user']

Problem:在views.py中,我希望更改Profile对象的父字段值,但是有下一个错误。

错误:

代码语言:javascript
复制
  File "C:\Users\PycharmProjects\Project\project_venv\lib\site-packages\mptt\models.py", line 209, in get_ordered_insertion_target
    if parent is None or parent.get_descendant_count() > 0:
AttributeError: 'User' object has no attribute 'get_descendant_count'

views.py:

代码语言:javascript
复制
print(self.created_user) # return correct value

profile = Profile.objects.get(id=5)
profile.parent = self.created_user
profile.save()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 20:07:09

不能将parent定义为指向另一个类。这是没有意义的;树的要点是,您有一组相同类型的层次化项集。

您的parent TreeForeignKey需要指向"self",并且需要传递给它Profile的实例,而不是User

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50572748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档