我一直在使用这个网站作为如何在Django中制作动态表单的示例.在他看来他使用
if request.method == 'POST':
form = UserCreationForm(request.POST)
Run Code Online (Sandbox Code Playgroud)
将数据传递到表单和他使用的表单构造函数中
extra = kwargs.pop('extra')
Run Code Online (Sandbox Code Playgroud)
访问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})
Run Code Online (Sandbox Code Playgroud)
在我的表单构造函数中,我打印args并kwargs发现它kwargs是空的,并且args是一个包含其QueryDict反过来包含POST数据的元组.如果我尝试使用form=CustomQueryConstraintForm(**request.POST),则每个元素kwargs都是一个列表,其中包含字段的值作为其唯一元素.我在这里做错了吗?如果没有,是否有更优雅的方式来访问数据args[0][element_name][0]?
这是表单的预期行为:传递给表单的POST数据是第一个参数args [0]而不是关键字参数.你在找什么?
data = args[0]
print data['my_field']
Run Code Online (Sandbox Code Playgroud)
并在表单构造函数中,他使用extra = kwargs.pop('extra')来访问POST数据.
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']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12172 次 |
| 最近记录: |