<p>您已经在<code>CommentForm</code>中定义了字段<code>body</code>。它在表单中是必需的,因为您没有在模型中为此字段包含<code>blank=True</code>参数。这意味着,当您发布请求并检查表单是否对<code>form.is_valid()</code>有效时,表单希望请求中有一个名为<code>body</code>的元素。如果它不在那里,它将不会验证,也不会保存内容</p>
<p>进行以下更改:</p>
<ol>
<li><p>将您的视图更改为</p>
<pre><code>...
if request.method == 'POST':
form = CommentForm(data=request.POST)
if form.is_valid():
new_comment = form.save(commit=False)
new_comment.post = post
new_comment.user = request.user
new_comment.save()
return redirect('blog-home')
else:
print(form.errors) # or log it to a file, if you have logging set up
form = CommentForm()
...
</code></pre></li>
<li><p>将您的HTML更改为:</p>
<pre><code>...
<form name="contactForm" id="contactForm" method="post" action="">
{% csrf_token %}
<fieldset>
<div class="message group">
<label for="body">Message <span class="required">*</span></label>
<textarea name="body" id="cMessage" rows="10" cols="50" ></textarea>
{{ comment_form.body.errors }}
</div>
<button type="submit" class="submit">Submit</button>
</fieldset>
</form>
...
</code></pre></li>
</ol>