阿豪要卷死我 2021-12-31 17:19 采纳率: 50%
浏览 79
已结题

Django中POST请求无法传输到数据库

无法把request.POST.get取得的值,传递给Django ORM的create()函数,生成一条数据记录.

Views代码:
from django.shortcuts import render,redirect,HttpResponse
from .models import employee,department,group,employeeinfo
# Create your views here.
# 在此处编写视图函数代码
#部门数据表的增删查改
def list_dep_old(request):
    #取得数据表中的全部记录
    dep_list = department.objects.all()
    return render(request,'test_orm_old/list_dep_old.html',{'dep_list':dep_list})

def add_dep_old(request):
    #判断请求方式,如果是POST,说明前端页面需要提交数据
    if request.method == 'POST':
        dep_name = request.POST.get('dep_name')
        print(dep_name)
        dep_script = request.POST.get('dep_script')
        if dep_name.strip() == '':
            return render(request,'test_orm_old/add_dep_old.html',{'error_info':'部门名称部门为空!'})
        try:
            #用create()函数新建一条记录,这条记录会自动保存,不用调用save()函数
            p = department.objects.create(dep_name=dep_name,dep_script=dep_script)
            #ojb = department(dep_name=dep_name,dep_script=dep_script)
            #ojb.save()
            return redirect('/test_orm_old/list_dep_old/')
        except Exception as e:
            return render(request,'/test_orm_old/add_dep_old.html',{'error_info':'输入的部门名称重复或者信息错误!'})
        finally:
            pass
    return render(request,'test_orm_old/add_dep_old.html')

add_dep_old.html代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>增加</title>
    </head>
    <body>
        <div align="center">
            <h1>增加部门</h1>
            <hr>
            <!--设置<from>表单的method="POST",当点击“保存按钮时”,向后端发送post请求-->
            <from action = "" method="post">
                <!--Django安全机制,防止CSRF-->
                {% csrf_token %}
                <input type="hidden" name="id" id="id" value="{{ department.id }}">
                <div>
                    <label>部门:</label>
                    <!--<input标签>的name属性必须设置,后端通过name属性取值-->
                    <input type="text" name="dep_name" id="dep_name">
                </div>
                <br>
                <div>
                    <label>备注:</label>
                    <input type="text" name="dep_script" id="dep_script">
                </div>
                <br>
                <div><input type="submit" value="保存"></div>
            </from>
            <!--错误信息显示在此处-->
            {{ error_info }}
        </div>
        <div align="center"><a href="/test_orm_old/list_dep_old/">返回部门列表</a></div>
    </body>
</html>

运行结果:输入信息点击保存没有任何反应。
  • 写回答

2条回答 默认 最新

  • CSDN专家-Time 2021-12-31 17:23
    关注

    你的form表单的action是空值。

    img


    还有标签不叫from 叫 form

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月8日
  • 已采纳回答 12月31日
  • 创建了问题 12月31日

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题