添加评论在Django

时间:2018-03-26 11:07:05

标签: python django django-models django-forms django-views

我有代码,但是当我写评论而不是写它,并且错误 " POST / post_list HTTP / 1.1" 405 0

在views.py中

class AddPost(View):
 def get(self,request):
      form = AddPostForm()
      context = {'form':form}
      return render(request,'add_post.html',context)
 def post(self,request):
      form = AddPostForm(request.POST)
      if form.is_valid():
           form.save()
           return redirect('/')
      else:
           context = {'form':form}
           return render(request,'add_post.html',context)

在forms.py

class AddCommentForm(ModelForm):
def __init__(self,*args,**kwargs):
    super(AddCommentForm,self).__init__(*args,**kwargs)
    self.helper = FormHelper(self)
    self.helper.layout.append(Submit('submit','Add'))

class Meta:
    model = Comment
    exclude = ['post']
    labels = {
        'name' : 'Nickname',
        'comment' : '',
    }
    error_messages = {
        'name':{
            'unique' : 'This Title has been used !'
        }
    }
post_content.html中的

{% extends 'base.html' %}
{% load static %}

 {% block title %} {{ post.title }} {% endblock %}

 {% block content %}

    <div align="center" class="divtw" style="width: 50%">


                <h1>{{ post.title }}</h1>
                <h2>{{ post.text }}</h2>
                <h5>{{ post.author }}</h5>
    <hr>
    {% for comments in post.comment_set.all %}

        <div align="left">
            <h5>{{ comments.name }}</h5>
            <p>{{ comments.comment }}</p>
        </div>
        <hr>
    {% endfor %}
    </div>

    <div align="left">
        {% include 'add_comment.html' %}
    </div>




 {% endblock %}

在add_comment.html

{% load crispy_forms_tags %}
<form method="post" action="/post_list">

    {% csrf_token %}

    {% crispy form %}

</form>

当我通过管理页面添加评论时,它会出现错误 有关详细信息,请参阅下载教程link 如果可以告诉我问题是什么以及如何保存它

1 个答案:

答案 0 :(得分:0)

评论表单的操作指向&#34; / post_list&#34;,这可能是一个列表视图,用于呈现帖子列表。该视图不知道如何处理POST请求,因此405错误。

它应该指向处理和保存评论的视图的URL。