form.cleaned_data在django中不起作用

时间:2018-03-19 21:53:16

标签: python html django

def kw(request):
    global form
    ans="this is the default value"        
    form = NameForm(initial={'C': ans})
    if form.is_valid():
        print("helooo")
        d = (form.cleaned_data['C'])

    print("the value of d =",d)
    return render(request, 'keyword.html', {'form': form})

这是我的代码,但不知道为什么表单不被认为是有效的.. 打印(" helooo')cmd既不起作用也不起作用。 如果条件不满意..

from django import forms

class NameForm(forms.Form):
    C = forms.CharField(widget=forms.Textarea)

这是我的form.py文件

1 个答案:

答案 0 :(得分:1)

is_valid永远不会返回True如果the form is not bound,而你的则不会,因为您没有传递任何数据。您需要像这样实例化表单:

form = NameForm(request.POST)

您的代码还有许多其他问题。您可以查看this example,了解如何构建处理表单的视图。

def kw(request):
    ans = "this is the default value"        
    if request.method == 'POST':
        form = NameForm(request.POST)
        if form.is_valid():
            print("helooo")
            d = (form.cleaned_data['C'])
            print("the value of d =",d)
    else:
        form = NameForm(initial={'C': ans})
    return render(request, 'keyword.html', {'form': form})