为了账号安全,请及时绑定邮箱和手机立即绑定

从 POST 请求中获取数据

从 POST 请求中获取数据

潇湘沐 2022-06-14 16:55:11
尽管正确更新了 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 值修复为我知道存在的东西并且这也不起作用(我导入了那个以上)我觉得这对于有经验的人来说可能是微不足道的,我是一个新的爱好者,只是想学习!非常感谢任何帮助。
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

您的 if 语句在 GET 而不是 POST 期间执行。


我建议使用基于类的视图结构来构建您的代码,如下所示:


from django.views import View


class 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')


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 294 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号