为课程博客添加评论区时遇AttributeError问题求助
问题解决:Manager isn't accessible via Lesson instances
错误根源
你模板里的代码错误调用了模型实例的管理器:
{% url 'lang_learning_app:lesson_detail' lesson.published.year lesson.published.month lesson.published.day lesson.slug %}
这里的lesson.published是你在Lesson模型里定义的类级管理器(published = PublishedManager()),管理器只能通过模型类(比如Lesson.published)访问,不能通过模型实例(lesson对象)调用。而你实际要获取的是Lesson实例的发布时间字段publish(DateTime类型,包含year/month/day属性)。
修复步骤
直接把模板里的lesson.published替换成lesson.publish:
<form action="{% url 'lang_learning_app:lesson_detail' lesson.publish.year lesson.publish.month lesson.publish.day lesson.slug %}" method="post" name="commentform" class="row comment-form">
额外验证
你的Lesson模型里的get_absolute_url方法已经正确使用了self.publish,views里的redirect逻辑没问题,所以只需要修正模板里的这几处参数即可。
内容的提问来源于stack exchange,提问作者mdev
相关产品推荐
相关产品推荐

