渲染comment form的时候,{% render_comment_form for post %} 异常,错误提示must be type, not post~


渲染comment form的时候,{% render_comment_form for post %} 异常,错误提示must be type, not post

求指点!

  • 11 回复 | 直到 2017年1月5日 19:01
  • 看下 django comments 的文档 render_comment_form 的用法?

  • 在detail.html 通过传进来的post获取titile和body都能取到, 唯独在渲染comment form的时候{% render_comment_form for post %} 会提示TypeError must be type, not post

    很不解!求姐!

  • Displaying the comment post form

    To show the form that users will use to post a comment, you can use render_comment_form or get_comment_form

    Quickly rendering the comment form

    The easiest way to display a comment form is by using render_comment_form: {% render_comment_form for [object] %}

  • 确保你的 post 没有问题?

  • @追梦人物 在detail.html 页面, {{post.titile}} 和{{post.body}} 都能正常显示出来

  • @追梦人物 问题找到了。

    由于我用的是django 1.8 ,在定义的class ReplyForm的init中, 调用super(ReplyForm).init(args, kwargs), 没有指定super第二个参数self导致的问题。正确的应该是: ''' class ReplyForm(CommentForm): def init(self, *args, kwargs): super(ReplyForm,self).init(args, **kwargs) '''

  • 由于我用的是django 1.8 ,在定义的class ReplyForm的init中, 调用super(ReplyForm).init(args, kwargs), 没有指定super第二个参数self导致的问题。正确的应该是: ··· class ReplyForm(CommentForm): def init(self, *args, kwargs): super(ReplyForm,self).__init__(*args, kwargs) ···

  • 由于我用的是django 1.8 ,在定义的class ReplyForm的init中, 调用super(ReplyForm).init(args, kwargs), 没有指定super第二个参数self导致的问题。正确的应该是

    class ReplyForm(CommentForm):
        def __init__(self, *args, **kwargs):
            super(ReplyForm,self).__init__(*args, **kwargs)
    
  • 嗯,OK!

  • @追梦人物 我说错了。是python 2和python 3 super关键字的区别,python3中super不用传递参数

  • @faintbear 嗯,要么不传递参数,要么传递两个。

添加一条新回复
登录以回复