阿豪要卷死我 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日

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格