gpt4 book ai didi

python - Django:将模板值发布到 View

转载 作者:搜寻专家 更新时间:2023-10-31 22:21:17 25 4
gpt4 key购买 nike

问题:

我想通过使用隐藏值字段和提交按钮来发布到 View 并从模板传递值。来自提交按钮的值(即 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>

评论 View :

@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 dict 是不可取的,因为我必须为每条评论存储一个 id,无论它们是否被评论过。

What is a more efficient way to pass variables from Template to View in Django?

关于如何在 POST 中包含隐藏值的任何想法?谢谢!

最佳答案

View .py

def make_comment(request):
if request.method == 'POST':
if 'prepair_comment' in request.POST:
review = get_object_or_404(Review, pk=request.POST.get('id'))
form = CommentForm({'review': review.id})
return render(request, 'stamped/comment.html', {
'form': form,
})
else: # save the comment

模型.py

class CommentForm(ModelForm):
class Meta:
model = Comment
exclude = ('user',)
widgets = {'review': forms.HiddenInput()}

餐厅.html

<form method='POST' action='/add_comment/'>
{% csrf_token %}
<input type='hidden' value='{{ r.id }}' name='id'>
<input type="submit" name='prepair_comment' value="Make a Comment">
</form>

关于python - Django:将模板值发布到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18434920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com