2013-08-27 105 views
0

我已动态创建一个Django的形式来实现的,像这样一些自定义的行为,我如何解决int()参数必须是字符串或数字而不是'querydict'django错误?

def partial_order_item_form(item): 
    """dynamic form limiting optional_items to their items""" 
    class PartialOrderItemform(forms.Form): 
     quantity = forms.IntegerField(widget=forms.TextInput(attrs={'size':'2', 'class':'quantity','maxlength':'5'})) 
     option = forms.ModelMultipleChoiceField(queryset=OptionalItems.objects.filter(item=item),widget= forms.RadioSelect()) 

    return PartialOrderItemform 

我继续在我的观点像这样来验证,

def show_item(request,id): 
    a = Item.objects.get(pk=id) 
    if request.method == 'POST': 
     form = partial_order_item_form(request.POST) 
     if form.is_valid(): 
      order.add_to_order(request,a) 
    else: 
     form = partial_order_item_form(item=id) 
    context={ 
     'form':form,  
    } 
    return render_to_response('item.html',context,context_instance=RequestContext(request)) 

当我提交表单,我得到int() argument must be a string or number not 'querydict'错误。

我已经看过int() argument must be a string or a number, not 'QueryDict'Form error int() argument must be a string or a number, not 'QueryDict'但仍然没有得到它。

回答

1

你传递的request.POST字典查询到:

OptionalItems.objects.filter(item=item) 

也许你的意思是通过类似request.POST [ 'ITEM_ID']?

相关问题