gpt4 book ai didi

python - FieldError 在/。无法将关键字 'textField' 解析为字段

转载 作者:太空宇宙 更新时间:2023-11-04 08:21:01 25 4
gpt4 key购买 nike

我正在尝试为我的 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 很陌生。请帮我解决这个问题

最佳答案

为什么您希望 Django 能够神奇地将字段名称映射到您在模板中指定的名称?例如,您的模型中没有任何内容称为您在 <select> 中列出的任何项目。选项。

我发现这个错误很容易解释:

FieldError at /filter/ Cannot resolve keyword 'textField' into field. Choices are: contactNumber, dateOfJoin, designation, employeeID, id, project, userName

您没有 textField模型中的字段,但您正在尝试对其进行过滤。

想象 SELECT textField FROM mytable -- textField只是不存在。

... and a text area for inputing some text.


至于解决你的问题,你有几个。您正在尝试对 choices 中指定的特定字段进行查找,但 Choices 与您的字段之间没有任何关系。

为了方便您自己,至少为您的 <option> 设置值标记作为字段名称。

<select name="choices" onsubmit="document.forms[0].submit()" >
<option value="">Select A Choice</option>
<option value="userName">Name</option>
<option value="designation" >Designation</option>
<option value="employeeID" >EmployeeID</option>
<option value="project" >Project</option>
<option value="dateOfJoin" >Date Of Join</option>
</select>

if request.GET.get('choices'):
# prevent query on field ''
EmployeeDetails.objects.filter(**{request.GET.get('choices'): \
request.GET.get('textField')})

关于python - FieldError 在/。无法将关键字 'textField' 解析为字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com