代码之家  ›  专栏  ›  技术社区  ›  Josh Hunt bstahlhood

在Django中的form.cleaned_数据[i]上使用rstrip

  •  1
  • Josh Hunt bstahlhood  · 技术社区  · 17 年前

    def clean_post_data(form):
        for i in form.cleaned_data:
            form.cleaned_data[i] = form.cleaned_data[i].rstrip()
    
    def add_product(request):   
        form = ProductForm(request.POST, request.FILES or None)
        image = Image.objects.all()
        action = "Add"
    
        if request.POST:
            if form.is_valid():
                clean_post_data(form)
                form.save()
                action = "Added new product"
                return render_to_response('cms/admin/action.html', {'action' : action},context_instance=RequestContext(request))
            else:
                action = "There was an error. Please go back and try again"
                return render_to_response('cms/admin/action.html', {'action' : action}, context_instance=RequestContext(request))
    
        return render_to_response('cms/admin/editproduct.html', {'form' : form, 'action' : action, 'image' : image}, context_instance=RequestContext(request))
    

    'list' object has no attribute 'rstrip' . 我做错了什么。

    我本来有 for i in form.cleaned_data: 直接在视图中循环(不是在另一个函数中),它工作得很好,但是现在当我尝试它时,我得到了与上面相同的错误。 http://dpaste.com/92836/

    2 回复  |  直到 17 年前
        1
  •  1
  •   S.Lott    17 年前

    这个 clean_post_data

    它应该是一个名为 clean Form and Field Validation .

        2
  •  0
  •   Sergey Golovchenko    17 年前

    def clean_post_data(form):
        for i in form.cleaned_data:
            if('__iter__' in dir(form.cleaned_data[i])):
                print "skip this element: " + str(form.cleaned_data[i])
            else:
                form.cleaned_data[i] = form.cleaned_data[i].rstrip()