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

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 咨询一下有关于王者荣耀赢藏战绩
  • ¥100 求购一套带接口实现实习自动签到打卡
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?