微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

/'dict' 对象的 AttributeError 没有属性 '_mptt_meta'

如何解决/'dict' 对象的 AttributeError 没有属性 '_mptt_meta'

我尝试使用帖子和 MPTT 评论来构建博客,这将在主视图 www.mysite.com 中,这意味着我无法将 pk 传递给 url,因此我尝试使用 for 循环获取帖子对象

    comma = Post.objects.all()
    comm = []
    for post in comma:
        comment = PostCommentIDF.objects.filter(post=post)
        comm.append({"comme": comment}

   context = {'comment': comm,}
   return render(request,'personal/home.html',context)

还有我的 Mptt 评论模型

class PostCommentIDF(MPTTModel):
    post = models.ForeignKey(Post,on_delete=models.CASCADE,related_name='pos_com')
    parent = TreeForeignKey('self',null=True,blank=True,related_name='post_children')
    author = models.ForeignKey(Account,on_delete=models.CASCADE)
    content = models.TextField()
    created_date = models.DateTimeField(auto_Now_add=True)
    status = models.BooleanField(default=True)
    likes = models.ManyToManyField(Account,related_name='pos_com')

我的帖子模型

class Post(models.Model):
    author = models.ForeignKey(Account,on_delete=models.CASCADE)
    article = models.TextField(null=True,blank=True)
    photo_article = models.ImageField(max_length=255,upload_to=get_poster_filepath)

我在模板中的 mptt 评论

   {% recursetree comment %}
      <div id="{{ node.id }}" class="my-2 p-2" style="border: 0px solid grey">
          <div class="d-flex justify-content-between">
              {{ node.publish|naturaltime }}
              <div class="node-content mt-3">{{ node.content  }}</div>
          </div>
      </div>
   {% endrecursetree %}

解决方法

comment 在您的模板上下文中是一个字典列表。它应该是一个 PostCommentIDF 实例列表。而且您正在执行多个 SQL 查询,这确实效率低下。改用 __in 运算符并直接使用查询集,它也是可迭代的:

comma = Post.objects.all()
comment = PostCommentIDF.objects.filter(post__in=comma)

context = {'comment': comment,}
return render(request,'personal/home.html',context)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?