未找到搜索时显示消息

2024-09-28 01:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Django做了一个过滤方法。过滤基于从下拉菜单中选择的选项和文本输入。过滤工作正常。现在,如果没有找到搜索,我想显示一条消息。有人能帮我解决这个问题吗。会把我的代码贴在这里。在

def filter(request):
    val3='' 
    if request.GET.has_key('choices'):
        val2=request.GET.get('choices')
    if request.GET.has_key('textField'):
        val3=request.GET.get('textField')
    if request.POST:
        val2=request.POST.get('choices')    
        val3=request.POST.get('textField')
    if val2=='Designation':                
        newData = EmployeeDetails.objects.filter(designation=val3) 
        flag=True 
    elif val2=='Name':
        newData = EmployeeDetails.objects.filter(userName__icontains=val3)
        flag=True 
    elif val2=='EmployeeID':
        newData = EmployeeDetails.objects.filter(employeeID=val3)  
        flag=True       
    elif val2=='Project':
        newData = EmployeeDetails.objects.filter(project=val3)   
        flag=True   
    elif val2=='DateOfJoin':
        newData = EmployeeDetails.objects.filter(dateOfJoin=val3) 
        flag=True       
    else:
        return HttpResponseRedirect('/employeeList/')

html

^{pr2}$

Tags: truegetifobjectsrequestfilterchoicesflag
3条回答

如果您对如何命名get/post变量有一点“聪明”,那么您可以显著地最小化视图代码。在

def filter(request):
    fieldname = request.GET.get('choices', None) or request.POST.get('choices')
    value = request.GET.get('textField', None) or request.POST.get('textField')

    if fieldname is None or value is None:
        return HttpResponseRedirect('/employeeList/')

    new_data = EmployeeDetails.objects.filter(**{fieldname:value})
    # use new_data for your purposes here, without the flag

但是,您需要确保选项中的GET或POST变量名与模型的字段名完全匹配(包括大小写)。在

然后在模板中:

^{pr2}$

如果没有将标志设置为true,或者如果newData为null,而找不到任何内容,如何显示消息?在

{% if flag is None or flag == False or newData is None %}
    <span>Error Message</span>
{% endif %}

您可能需要检查是否有必要检查标志是否为空。。。不能从你发布的代码中判断是否有必要。在

高温

在筛选器视图或html中检查新数据。。。如果是空的,显示你的消息

示例:

{% if newData %}
    newData
{% else %}
    error
{% endif %}
  • 任何东西都是你想要的,支票是空的?在

相关问题 更多 >

    热门问题