my views.py cod:
def update_details(request):
if request.method == "POST":
form = UpdateDetailsForm(request.POST)
if form.is_valid:
asset_code=form.cleaned_data['asset_code1']
fd=form.cleaned_data['product_details']
verifications = Verification.objects.filter(asset_code__exact=asset_code)
verifications.update(product_details=fd)
return render_to_response('update_details.html',
{'form':UpdateDetailsForm(),},
context_instance=RequestContext(request))
我想在我的模型中更新'product_details'列值,其中资产代码正是用户输入的内容。但是当我提交按钮时,我收到错误。
错误讯息:
AttributeError对象没有属性'cleaning_data'django
答案 0 :(得分:3)
form.is_valid
是一种方法;你需要打电话给它:
from django.shortcuts import render, redirect
def update_details(request):
if request.method == "POST":
form = UpdateDetailsForm(request.POST, request.FILES)
if form.is_valid():
asset_code=form.cleaned_data['asset_code1']
fd=form.cleaned_data['product_details']
verifications = Verification.objects.filter(asset_code__exact=asset_code)
# filter returns a list, so the line below will not work
# you need to loop through the result in case there
# are multiple verification objects returned
# verifications.update(product_details=fd)
for v in verifications:
v.update(product_details=fd)
# you need to return something here
return redirect('/')
else:
# Handle the condition where the form isn't valid
return render(request, 'update_details.html', {'form': form})
return render(request, 'update_details.html', {'form':UpdateDetailsForm()})