如何在基于类的视图
中访问表单输入中的company_id字段forms.py
class CompanyProductForm(forms.Form):
company_id = forms.IntegerField()
我尝试覆盖form_valid(),但没有成功。 我也希望转换' obj'查询到python列表,然后将其附加到产品。
view.py
class CompanyProduct(LoginRequiredMixin, UserPassesTestMixin, FormView):
template_name = 'company_product.html'
form_class = CompanyProductForm
products = []
def test_func(self):
return self.request.user.is_staff
def post(self, request, *args, **kwargs):
self.products = []
def form_valid(self, form):
id = form.cleaned_data['company_id']
return super(CompanyProduct, self).form_valid(form)
obj = Product.objects.filter(company_id=id)
return render(request, 'product_download.html',{'product':self.products,
'num':len(self.products)})
错误:
/ upload / company_product /
中的TypeErrorint()参数必须是字符串或数字,而不是' builtin_function_or_method'
答案 0 :(得分:1)
通过仅使用赋值覆盖post
方法,您已禁用了应该在帖子上发生的所有其他操作,例如验证表单。您应该完全删除该方法 - 在其他地方定义该列表,例如form_valid
。