问题:
我要发布到视图并通过使用隐藏的值字段和提交按钮从模板传递值。提交按钮的值(即 csrf_token)通过但隐藏的值没有。我检查了 Wezkrug 调试器,request.POST
它只包含表单值,而不是'id'
隐藏字段中的值。
背景:
该按钮会将您带到一个表单,您可以在其中输入评论。我正在尝试包含review.id
用户正在评论的内容,以使评论变得容易。我将值作为“测试”而不是用于测试目的。
我的表格:
<div>
<form method='POST' action='/add_comment/'>
{% csrf_token %}
<input type="hidden" name='id' value='test'>
<input type="submit" value="Make a Comment">
</form>
</div>
评论视图:
@login_required
def make_comment(request):
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.user = request.user
comment.save()
# render?
return HttpResponseRedirect('/results/', {
'restaurant': get_object_or_404(
Restaurant,
name=request.POST['name'],
address=request.POST['address']
)
})
else:
form = CommentForm()
return render(request, 'stamped/comment.html', {'form': form})
评论型号:
class Comment(models.Model):
content = models.TextField()
review = models.ForeignKey(Review)
user = models.ForeignKey(User)
date_added = models.DateTimeField(auto_now_add=True)
评论 ModelForm 代码:
class CommentForm(ModelForm):
class Meta:
model = Comment
exclude = ('user', 'review',)
我一直在尝试遵循这个问题中的策略,但是使用 request.session 字典是不可取的,因为 Id 必须为每条评论存储一个 id,无论它们是否被评论过。
关于如何在 POST 中包含隐藏值的任何想法?谢谢!