gpt4 book ai didi

javascript - 当我多次单击提交按钮时(当加载发帖时),该帖子会被多次发帖

转载 作者:行者123 更新时间:2023-11-28 06:24:24 24 4
gpt4 key购买 nike

我正在使用 django,当我完成我的项目时,我意识到这种情况正在发生......(我猜我应该完成测试)我不知道如何解决这个问题。我用谷歌搜索了一下,有些人使用 jquery,但我不太明白这有什么帮助。这是我在views.py中的代码

class PostCreateView(CreateView):

model = Post
form_class = PostForm
template_name = 'main/add_post.html'

def form_valid(self, form):

self.object = form.save(commit=False)
# any manual settings go here

#self.object.category = Category.objects.filter(category__in=categories).all()

self.object.moderator = self.request.user
self.object.image = extract(self.object.url)

self.object.save()
return HttpResponseRedirect(reverse('post', args=[self.object.slug]))

@method_decorator(login_required)
def dispatch(self, request, *args, **kwargs):
return super(PostCreateView, self).dispatch(request, *args, **kwargs)

这是我的表格

class PostForm(forms.ModelForm):

# category = CategoryChoices()

title = forms.CharField(max_length=128, help_text="plz enter")

url = forms.URLField(max_length=200,
help_text="Please enter the URL of the page.", required=False)
views = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
class Meta:
model = Post
widgets = {
'category':Select2Widget,
}
exclude = ['pub_date', 'moderator', 'rank_score','slug', 'image']

这是我的html

<div class="row">
<div class="col-md-3"
<form id="post_form" method="post" action="/add_post/" enctype="multipart/form-data">
{% csrf_token %}
{{ form|crispy }}
<!--{% for tag in person.tags.all %}{{ tag.word }} {% endfor %}-->

<input type="submit" name="submit" value="Create Post">
</form>
<div>
</div>

当我点击这里的提交按钮来发帖时,它会加载,当它加载时,我尝试再次点击提交按钮,然后当它完成加载时,会发布两个相同的帖子。我该如何解决?谢谢

最佳答案

return HttpResponseRedirect(reverse(self.object.get_absolute_url))

在模型中定义 get_absolute_url,它应该引用 View 详细信息而不是表单。

关于javascript - 当我多次单击提交按钮时(当加载发帖时),该帖子会被多次发帖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35249225/

24 4 0
文章推荐: html - 使用 iframe 填充整个剩余屏幕制作表格行
文章推荐: c++ - 如何使用 std::back_inserter 插入容器(只有一个指向容器的指针)
文章推荐: html - 调整侧边栏旁边
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com