【问题标题】:Django function based form not valid基于 Django 函数的表单无效
【发布时间】:2023-03-25 12:01:01
【问题描述】:

我正在尝试制作一个基于函数的表单,以便从用户那里获取输入以创建客户表。 我正在使用基于函数的表单,但是当我使用 form.is_valid() 时,它会返回 False

def customer(request):
    form = customerForm(request.POST or None )
    print(form)
    context = {'form':form}
    if form.is_valid():
        mobile_no = form.cleaned_data["mobile_no"]
        print("mobile_no")
        object = Customer.objects.get(mobile_no=mobile_no)
        if(object is not None):
            invoice_no = Bill.objects.all().count()
            obj = Bill.objects.create(customer_info=object,invoice_no=invoice_no+1,shop_details=ShopDetail.objects.all())
            return redirect(reverse('receipt:create-bill',kwargs = {'pk':obj.pk}))
    return HttpResponse("<h1>Form invalid</h1>")#redirect(reverse_lazy("home"))

【问题讨论】:

  • 请发布更多信息(例如您的模型、表单和模板)。
  • 您可以使用 form.errors 找出它无效的原因。
  • 在您的代码之后尝试print(form.errors)。然后你就可以看到问题所在了

标签: python django django-forms


【解决方案1】:

也许您将提交表单方法设置为 GET 但在函数中设置表单数据由request.POST 您必须将 html 表单标签的 method 属性设置为 post 并更改您的功能如下:

def customer(request):
    form = customerForm()
    if request.method.lower() == 'post':
        form = customerForm(request.POST or None )
        print(form)
        context = {'form':form}
        if form.is_valid():
            mobile_no = form.cleaned_data["mobile_no"]
            print("mobile_no")
            object = Customer.objects.get(mobile_no=mobile_no)
            if(object is not None):
                invoice_no = Bill.objects.all().count()
                obj = Bill.objects.create(customer_info=object,invoice_no=invoice_no+1,shop_details=ShopDetail.objects.all())
                return redirect(reverse('receipt:create-bill',kwargs = {'pk':obj.pk}))
        return HttpResponse("<h1>Form invalid</h1>")  # redirect(reverse_lazy("home"))
    return render('my_template.html', context=context)

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    相关资源
    最近更新 更多