【发布时间】:2011-07-07 23:32:41
【问题描述】:
我正在尝试为我的 django 应用程序做一个过滤方法。我在数据库中有一些字段,例如用户名、指定、员工 ID 等。现在我正在尝试进行过滤;下拉菜单显示所有字段(姓名、职务、员工 ID 等)和用于输入一些文本的文本区域。过滤应基于下拉选项选择和在文本区域中输入的数据。执行此操作时出现此错误:FieldError at /filter/ 无法将关键字“textField”解析为字段。选项有:contactNumber、dateOfJoin、designation、employeeID、id、project、userName 我将在此处粘贴我的 html 和 views.py。请帮我解决这个问题。
<form action="http://10.1.0.90:8080/filter/" method="POST">
Filter By:
<select name="choices" onsubmit="document.forms[0].submit()" >
<option value="">Select A Choice</option>
<option value="Name">Name</option>
<option value="Designation" >Designation</option>
<option value="EmployeeID" >EmployeeID</option>
<option value="Project" >Project</option>
<option value="Date Of Join" >Date Of Join</option>
</select>
<input type="text" name="textField">
<input type="submit" value="Go">
</form>
{%for data in newData%}
{{ data.userName}}<br>
{%endfor%}
这是我的 VIEWS.PY
def filter(request):
val2=request.POST.get('choices')
val3=request.POST.get('textField')
print val2,val3
newData = EmployeeDetails.objects.filter(choices=request.POST.get('choices'),textField=request.POST.get('textField'))
return render_to_response('filter.html',{'newData':newData,'val2':val2,'val3':val3})
MODELS.PY
class EmployeeDetails(models.Model):
userName = models.CharField(max_length=200)
designation = models.CharField(max_length=200)
employeeID = models.IntegerField()
contactNumber = models.CharField(max_length=200)
project = models.CharField(max_length=200)
dateOfJoin=models.TextField()
我对 Django 很陌生。请帮我解决这个问题
【问题讨论】:
-
完全不清楚您要做什么。您的模型中似乎没有一个名为
textField的字段,那么您到底要过滤什么?无论如何发布模型代码都会有所帮助。 -
您在哪里从 POST 中获得“指定”的价值?我在您的代码中没有看到它。另外,您确定 EmployeeDetails 有一个名为“textField”的字段(可能检查大写)?
-
感谢您的回复..我已经用我的型号代码更新了这个问题。我在模型中没有名为 textField 或选项的字段。在 POST 之后,我在变量选择和 textField 中获取过滤值。如何从我的所有数据库数据中过滤它。
标签: python django django-models django-templates django-views