我试图实现一个简单的过滤器方法之间的选择从下拉列表和一个文本字段。下拉列表中有诸如姓名、职务、员工ID(这些都是DB中的字段)等选项。有一个文本字段,可在其中指定所选选项的值。例如:如果我从下拉列表中选择“指定”,并且在文本字段中选择“软件工程师”:我想用名称“软件工程师”显示用户。若我从下拉列表中选择Name并在文本字段中给定“John”,我希望显示名为John的用户。我怎么能在Django做到这一点。我对Django很陌生,所以请帮我做这个。我将把我的代码粘贴在这里。 视图.PY
def filter(request):
val=request.POST.get('designation')
val2=request.POST.get('choices')
val3=request.POST.get('textField')
print val
print val2,val3
if val2=='Designation':
newData = EmployeeDetails.objects.filter(designation=request.POST.get('choices'))
print val2
elif val2=='Name':
newData = EmployeeDetails.objects.filter(userName=request.POST.get('choices'))
print val2
elif val2=='EmployeeID':
newData = EmployeeDetails.objects.filter(employeeID=request.POST.get('choices'))
print val2
elif val2=='Project':
newData = EmployeeDetails.objects.filter(project=request.POST.get('choices'))
print val2
elif val2=='DateOfJoin':
newData = EmployeeDetails.objects.filter(dateOfJoin=request.POST.get('choices'))
print val2
else:
print "Data Not Found"
return render_to_response('filter.html',{'newData':newData,'val2':val2})
HTML
^{pr2}$模型.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()
为了补充Yuji的答案,我建议你阅读关于kwargs和Q的表达式。这些将帮助您进行这种动态查询。在
这解决了我的问题
我在你的另一篇文章中给出了解决方案:
然后,在您的视图中,使用关键字扩展将
^{pr2}$choices
给出的字符串扩展为关键字参数。在相关问题 更多 >
编程相关推荐