猿问

从 POST 请求中获取数据

尽管正确更新了 django 模型,但 POST 数据并不总是符合我的逻辑


def new_record(request):

    form = RecordForm(request.POST or None)


    if request.method == 'POST':

        if form.is_valid():

            form.save()

            return HttpResponseRedirect('/new_record')

        else:

            form = RecordForm()


    item1 = request.POST.getlist('checkbox_1')

    item2 = request.POST.getlist('checkbox_2')

    item3 = request.POST.getlist('checkbox_3')


    print(item1)

    print(item2)

    print(item3)


    if 'on' in item1:

        print("Checkbox 1 is true")

        write_pdf_view(textobject='textobject', exam_record_number='123')

    else:

        print("Checkbox 1 is False")


    if 'on' in item2:

        print("Checkbox 2 is true")

    else:

        print("Checkbox 2 is False")


    if 'on' in item3:

        print("Checkbox 3 is true")

    else:

        print("Checkbox 3 is False")



    return render(request=request,

                  template_name='main/new_record.html',

                  context={"form": form}

                  )

我希望做的基本上是检查是否选中了一个复选框并将一个值传递给一个函数,如果这是真的,现在我已经将 y write_pdf_view 值修复为我知道存在的东西并且这也不起作用(我导入了那个以上)


我觉得这对于有经验的人来说可能是微不足道的,我是一个新的爱好者,只是想学习!非常感谢任何帮助。


潇湘沐
浏览 295回答 1
1回答

POPMUISE

您的 if 语句在 GET 而不是 POST 期间执行。我建议使用基于类的视图结构来构建您的代码,如下所示:from django.views import Viewclass NewRecord(View):    def get(self, request):        return render(request, 'main/new_record.html', {'form': RecordForm})    def post(self, request):        form = RecordForm(request.POST)        if form.is_valid():            form.save()        item1 = request.POST.get('checkbox_1', None)        ##place the rest of your logic here        return HttpResponseRedirect('/new_record')
随时随地看视频慕课网APP

相关分类

Python
我要回答