我是 Django 的新手,我正在尝试开发一个简单的 Django 应用程序,该应用程序使用表单从用户那里获取两个数字,并对这些数字进行一些操作,然后使用 Http 响应打印结果。我的代码如下:
表单.py
class SimpleForm(forms.ModelForm):
a = forms.IntegerField(label='first' )
b = forms.IntegerField(label='second' )
def result(self):
return doSomething(self.a, self.b)
View .py
class MainPage(FormView):
template_name = 'simple.html'
success_url = '/result/'
form_class = SimpleForm
def form_valid(self, form):
return HttpResponse(form.result())
但是,当我在我的本地主机上运行这段代码时,它给出了这样的错误
SimpleForm object has no attribute 'a'
那么,问题是什么?如何获取用户输入以便在我的“结果”函数中使用它?
提前致谢...
请您参考如下方法:
要访问数据,你需要使用form.data:
def result(self):
return doSomething(self.data['a'], self.data['b'])
如果您在调用result 之前调用了form.is_valid(),您也可以使用cleaned_data。 (因为OP正在使用FormView.form_valid,所以会自动调用)
def result(self):
return doSomething(self.cleaned_data['a'], self.cleaned_data['b'])
