我创建了一个应用程序来发布用户的评论,但在刷新页面时,最后发布的内容再次发布为重复...
models.py
class chat_content(models.Model):
content = models.CharField(max_length=500)
def __str__(self):
return self.content
views.py
def home(request):
if request.method != 'POST':
ct_cnt = chat_content.objects.all()
return render(request,'discussion/discussion_board.html',{'form':cont,'cnt':ct_cnt})
else:
form = cont(data=request.POST)
form.save(commit=True)
frm = cont()
ct_cnt = chat_content.objects.all()
print(ct_cnt)
return render(request,'discussion/discussion_board.html',{'form':cont,'cnt':ct_cnt})
forms.py
class cont(forms.ModelForm):
class Meta:
model = chat_content
fields = ('content',)
html的
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
Welcome to the public discussion
{% for c in cnt %}
<div>
{{ c }}
</div>
{% endfor %}
<form action="." method="post" enctype="multipart/form-data" >
{% csrf_token %}
{{ form }}
</form>
</body>
</html>
刷新时如何避免重复?
例如
最后一条评论是:“欢迎所有人”
在刷新页面时,内容更新为重复内容并显示为:“welcome all”“welcome all”
我可以纠正这个副本? 有没有简单的方法在这段代码中使用ajax?
提前致谢..
答案 0 :(得分:2)
您需要在发布后重定向到此页面,而不是显示HTML页面:
from django.shortcuts import redirect
form = cont(data=request.POST)
if form.is_valid():
form.save()
return redirect(home)
在这种情况下,用户将刷新GET页面,因此内容不会重复。