"从GET数据表单中获取数据。Djang"

2024-09-30 06:17:50 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用get方法从表单中获取数据?你知道吗

例如,我有以下表格:

class LoansSearchForm(forms.Form):
    balance = forms.IntegerField(label='', required=False)

在“我的视图”中,以这种方式在表单模板中显示:

def search_results(request):
    form = LoansSearchForm(request.GET)
    cd = form.cleaned_data
    word = cd['balance']

    context = {'form': form,
               'test': word,}
    return render(request, 'search_results.html', context)

但我还是犯了个错误:

'LoansSearchForm' object has no attribute 'cleaned_data'

当试图这样做时:

word = form['balance']

我收到一个包含完整数据的字段。如何从我的表单中正确获取数据?你知道吗

我的表格写对了吗?我应该用那种东西吗? (如果我的问题很琐碎,很抱歉,但是我发现关于GET forms的信息很少)

if request.method == 'GET':
    form = LoansSearchForm(request.GET)
    if form.is_valid():
        print('Hello World')
else:
    form = LoansSearchForm()

Tags: form表单searchdatagetrequestcontextcd
3条回答
def search_results(request):
    form = LoansSearchForm(request.GET)
    cd = form.cleaned_data                       # here <   
    word = cd['balance']

    context = {'form': form,
               'test': word,}
    return render(request, 'search_results.html', context)

代码的问题是表单在初始化时没有被填充,但是当您调用form.is_valid时,如果表单确实有效,那么它会填充干净的数据

您可以阅读有关documentation的更多信息。你知道吗

建议:运行form.is_valid(),然后运行form.cleaned_data

def search_results(request):
    form = LoansSearchForm(request.GET)
    if form.is_valid():
        cd = form.cleaned_data
        word = cd['balance']
    else:
        word = None

    context = {'form': form,
               'test': word,}
    return render(request, 'search_results.html', context)

Forms only get a cleaned_data attribute when is_valid() has been called, and you haven't called it anywhere.

有关清理数据的详细信息-documentation

我用了这个名字=表格数据['field\u name'],认为它回答了您在提交时获取表单值的问题。你知道吗

相关问题 更多 >

    热门问题