Python 刷新页面时取消发布
我的问题是:当用户刷新表单时,Python 刷新页面时取消发布,python,django,post,Python,Django,Post,我的问题是:当用户刷新表单时,表单中的数据将被发送 我有一个表格,上面有一个帖子请求 用户写下自己的姓名、邮件和消息。如果邮件正确,则会发送邮件 在我看来,如果表单有效,我会将消息添加到我的模型消息中 之后,我禁用“发送”按钮。但是,如果用户刷新页面,将调用我的视图,并在我的模型中添加另一行 我想,当用户刷新页面时,阻止帖子 我的看法是: def contact(request): form = MessageForm(request.POST or None) if for
表单中的数据将被发送
我有一个表格
,上面有一个帖子
请求
用户写下自己的姓名、邮件和消息。如果邮件正确,则会发送邮件
在我看来,如果表单
有效,我会将消息添加到我的模型消息中
之后,我禁用“发送”按钮。但是,如果用户刷新页面,将调用我的视图,并在我的模型中添加另一行
我想,当用户刷新页面时,阻止帖子
我的看法是:
def contact(request):
form = MessageForm(request.POST or None)
if form.is_valid():
name = form.cleaned_data['name']
message = form.cleaned_data['message']
mail = form.cleaned_data['mail']
new_message = Message()
new_message.name = name
new_message.message = message
new_message.mail = mail
new_message.save()
envoi = True
return render(request, 'vautmieux/contact.html', locals())
我的网址:
path('contact/', views.contact, name='contact'),
我的HTML:
<form action="{% url "contact" %}" method="post">
{% csrf_token %}
<div class="row">
<div class="col-md-6">
{{ form.name }}
{{ form.mail }}
</div>
<div class="col-md-6" >
{{ form.message }}
</div>
<button id="sendMessageButton" type="submit">ENVOYER LE MESSAGE !</button>
</div>
{% if envoi %}Votre message a bien été envoyé !{% endif %}
</form>
{%csrf_令牌%}
{{form.name}
{{form.mail}
{{form.message}}
特使,请留言!
{%if envoi%}请给我发一封请柬!{%endif%}
这是人们实施的主要原因。如果POST请求成功,您应该返回一个指向URL的重定向。因此,浏览器将执行GET,如果浏览器随后执行刷新,它将再次执行GET
def contact(request):
if request.method == 'POST':
form = MessageForm(request.POST)
if form.is_valid():
form.save()
return redirect('some-message-successful-view')
else:
form = MessageForm()
return render(request, 'vautmieux/contact.html', {'form': form})
def联系人(请求):
如果request.method==“POST”:
form=MessageForm(request.POST)
如果form.is_有效():
form.save()
返回重定向('some-message-successful-view')
其他:
form=MessageForm()
返回呈现(请求'vautmieux/contact.html',{'form':form})
此处“some-message-successful-view”
需要替换为成功发送消息时触发的视图的名称。这可以是与此处定义的视图相同的视图。我建议使用此选项向用户发送消息,说明消息已成功提交