【问题标题】:NameError - global name not definedNameError - 未定义全局名称
【发布时间】:2011-02-23 11:37:22
【问题描述】:

我正在尝试从 html 表单中读取一些数据并将其插入数据库。这样做我遇到了这个错误“NameError at /createEmployee/:未定义全局名称'get_post_param'”;我将在这里粘贴我的代码。谁能帮我解决这个问题。
VIEWS.PY

def createEmployee(request):
    if request.method == "POST":
        userName = get_post_param(request,"userName")
        designation = get_post_param(request,"designation")
        employeeID = get_post_param(request,"employeeID")
        contactNumber = get_post_param(request,"contactNumber")
        project = get_post_param(request,"project")
        dateOfJoin = get_post_param(request,"dateOfJoin")
        EmployeeDetails(userName=userName,designation=designation,employeeID=employeeID,contactNumber=contactNumber,project=project,dateOfJoin=dateOfJoin).save()
        return render_to_response('createEmployee.html')
    else:
        return render_to_response('createEmployee.html')

TEMPLATE.PY

<form action="http://127.0.0.1:8000/createEmployee/" method="POST"> 
Name: <input type="text" name="userName" /><br />
Designation: <input type="text" name="designation" /><br>
EmployeeID: <input type="text" name="employeeID" /><br>
Contact Number: <input type="text" name="contactNumber" /><br>
Project: <input type="text" name="project" /><br>
Date Of Join: <input type="text" name="dateOfJoin" /><br>
<input type="submit" value="Submit" /><br />
</form>

【问题讨论】:

  • 您的进口产品在哪里?你在哪里定义了 get_post_param?
  • from django.shortcuts import render_to_response from django.contrib.auth.models import* from task.employeeDetails.models import * from django.conf import settings from django.http import HttpResponse
  • 这些是我导入的模块。
  • 你自己定义了 get_post_param 吗?我似乎找不到任何关于它的文档,也许你的意思是调用 get_post_params?
  • 在当前表格中,问题无法回答,因为您遗漏了重要信息。请根据以上建议重新编辑。

标签: python django django-models django-templates django-views


【解决方案1】:

这是一个非常简单的问题。你还没有定义get_post_param
你从哪里得到这个get_post_param 的想法?

只需定义一个名为get_post_param 的函数来修复它..

这是一个 python shell 会话

>>> get_post_param(request, 'userName')
NameError: not defined

>>> def get_post_param(request, param):
...    return request.POST.get(param) 
       # or scrap the idea of a function to do a one liner op anyways

>>> get_post_param(request, 'userName'):
'my_username'

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 2014-10-24
    • 2012-05-29
    • 2013-08-23
    • 2014-04-03
    • 2017-05-12
    • 2015-09-01
    • 2012-03-10
    相关资源
    最近更新 更多