sách gpt4 ai đã đi

python - 如何在 `FormView.get_success_url()`中访问表单数据

In lại 作者:行者123 更新时间:2023-12-03 13:33:21 26 4
mua khóa gpt4 Nike

目前,我有一个看起来像这样的表格:

class SelectBoard(generic.FormView):
form_class = forms.SelectBoard

def form_valid(self, form):
board_name = form.cleaned_data['name']
return redirect('leaderboard', board_name=board_name)

但是,我更喜欢做一些惯用的事,并使用 get_success_url。像这样的东西:
class SelectBoard(generic.FormView):
form_class = forms.SelectBoard

def get_success_url(self):
form = ???
board_name = form.cleaned_data['name']
return reverse('leaderboard', board_name=board_name)

但是,该表单不会传递给 get_success_url,并且与许多其他请求上下文(例如 self.request, self.kwargshoặc self.object(在 DetailView中))不同,该表单不会作为属性附加到标准 FormView调度序列中的任何位置。有什么好的方法可以访问 get_success_url中经过清理和验证的表单数据(也就是说,无需访问 self.request.POST或从头开始重建表单)?

1 Câu trả lời

您可以重写form_valid方法以将表单写为实例属性,并在self.formSử dụng trongget_success_url:

class SelectBoard(generic.FormView):
form_class = forms.SelectBoard

def form_valid(self, form):
"""If the form is valid, redirect to the supplied URL."""
self.form = form
return HttpResponseRedirect(self.get_success_url())

def get_success_url(self):
board_name = self.form.cleaned_data['name']
return reverse('leaderboard', board_name=board_name)

关于python - 如何在 `FormView.get_success_url()`中访问表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48595913/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com