【发布时间】:2023-01-16 23:02:37
【问题描述】:
我有一个表单,但 request.POST 没有将数据传递到我的表单。即form.data 为空
我的表格
class DPStatusForm(forms.Form):
status = forms.ChoiceField(label="")
def __init__(self, excluded_choice=None, *args, **kwargs):
super().__init__(*args, **kwargs)
if excluded_choice:
status_choices = (
(s.value, s.label)
for s in DP.Status
if s.value != excluded_choice
)
else:
status_choices = ((s.value, s.label) for s in DP.Status)
self.fields["status"].choices = status_choices
查看接收表单数据
def update_status(request, id):
if request.method == "GET":
return redirect("my_app:show_dp", id)
p = get_object_or_404(DP, pk=id)
form = DPStatusForm(request.POST)
# debug statements
print(request.POST)
print(form.data)
# ...
通过 2 条打印语句,我可以看到 request.POST 存在并填充了 status 键,但 form.data 为空:
# request.POST
<QueryDict: {'csrfmiddlewaretoken': ['xxx...], 'status': ['1']}>
# form.data
<MultiValueDict: {}>
为什么 form.data 没有被填充?
【问题讨论】:
标签: django