gpt4 book ai didi

python - 以 Django 形式访问 POST 数据

转载 作者:太空狗 更新时间:2023-10-29 20:23:20 25 4
gpt4 key购买 nike

我一直在使用this site作为如何在 Django 中制作动态表单的示例。在他看来他使用

if request.method == 'POST':
form = UserCreationForm(request.POST)

将数据传递到表单和他使用的表单构造函数中

extra = kwargs.pop('extra')

访问 POST 数据。我尝试做一些与我的观点类似的事情:

def custom_report(request):
if request.method=='POST':
form=CustomQueryConstraintForm(request.POST)
else:
form=CustomQueryConstraintForm()
return render(request, 'frontend/custom_report.html', {'form':form})

在我的表单构造函数中,我打印了 argskwargs 并发现 kwargs 是空的,而 args 是一个包含 QueryDict 的元组,后者又包含 POST 数据。如果我尝试改用 form=CustomQueryConstraintForm(**request.POST),则 kwargs 中的每个元素都是一个列表,其中包含字段的值作为其唯一元素。我在这里做错了什么吗?如果不是,是否有比 args[0][element_name][0] 更优雅的数据访问方式?

最佳答案

这是表单的预期行为:您传递给表单的 POST 数据是第一个参数 args[0] 而不是关键字参数。你在找什么?

data = args[0]
print data['my_field']

and in the form constructor he uses extra = kwargs.pop('extra') to access the POST data.

kwargs.pop('extra') 未获取 POST 数据。它是与给定用户相关的问题列表——“营销部门”交给你的作者给出的一些场景。

无论如何,如果您需要在表单中的任何位置访问发布数据,我发现 self.data 是在 forms.__init__ 中设置的最干净的.

class MyForm(forms.Form):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.data['my_field']

关于python - 以 Django 形式访问 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com