如何使用POST请求从Django表单接收数据并在HTML模板上呈现

时间:2019-04-26 11:28:49

标签: django django-rest-framework django-forms django-templates django-views

如何使用POST请求从Django表单接收数据并在html模板上呈现。我的查看代码是:

def my_drive_fun(request):

    if request.method =='POST':
        form=my_drive_module(request.POST)
        if form.is_valid():
            Production_Drive = form.cleaned_data['Production_Drive']
            work_drive = form.cleaned_data['work_drive']
            show_name = form.cleaned_data['show_name']
            show_sup = form.cleaned_data['show_sup']
            show_coor = form.cleaned_data['show_coor']
            glow_project="Projects"+show_name
            pro_drive_path=Production_Drive+":"+"\\"
            wor_drive_path = work_drive + ":" + "\\"
            #text=form.cleaned_data['post']
            print("Production_Drive:",Production_Drive,"Work Drive:",work_drive,show_name,show_sup,show_coor,pro_drive_path,wor_drive_path)
    form=my_drive_module()
    drive_data={'form':form}
    return render(request,'my_drive.html',drive_data)

2 个答案:

答案 0 :(得分:0)

您可以通过:

return render(request,'my_drive.html',locals())

和在模板中

{{work_drive}} / {{show_name}}

或通过类似

context = {"data": form.cleaned_data}
return render(request,'my_drive.html',context)

和在模板中

{{data.work_drive}} / {{data.show_name}}

所以您的视图代码将是这样

def my_drive_fun(request):

    if request.method =='POST':
        form=my_drive_module(request.POST)
        if form.is_valid():
            Production_Drive = form.cleaned_data['Production_Drive']
            work_drive = form.cleaned_data['work_drive']
            show_name = form.cleaned_data['show_name']
            show_sup = form.cleaned_data['show_sup']
            show_coor = form.cleaned_data['show_coor']
            glow_project="Projects"+show_name
            pro_drive_path=Production_Drive+":"+"\\"
            wor_drive_path = work_drive + ":" + "\\"
            #text=form.cleaned_data['post']

            context = {"data": form.cleaned_data}
            return render(request,'my_drive.html',drive_data)
    form=my_drive_module()
    drive_data={'form':form}
    return render(request,'my_drive.html',drive_data)

答案 1 :(得分:0)

您可以执行以下操作:

def my_drive_fun(request):
    form=my_drive_module(request.POST or None)

    if form.is_valid():
        Production_Drive = form.cleaned_data['Production_Drive']
        work_drive = form.cleaned_data['work_drive']
        show_name = form.cleaned_data['show_name']
        show_sup = form.cleaned_data['show_sup']
        show_coor = form.cleaned_data['show_coor']
        glow_project="Projects"+show_name
        pro_drive_path=Production_Drive+":"+"\\"
        wor_drive_path = work_drive + ":" + "\\"
        #text=form.cleaned_data['post']
        print("Production_Drive:",Production_Drive,"Work Drive:",work_drive,show_name,show_sup,show_coor,pro_drive_path,wor_drive_path)

    return render(request,'my_drive.html',{"form": form})