根据表单输入并显示结果进行查询

时间:2016-03-23 11:01:44

标签: django django-views

我已经生成了一个从用户那里获取输入的表单,我根据输入进行查询并将查询结果存储在变量data中。 我希望渲染一个页面(display.html),它以变量data显示数据 如何定义要映射到display.html的网址?
我是否需要为display.html定义单独的视图?如果是,我如何将变量data传递给新视图?
实现这一目标的正确方法是什么?
这是我的views.py文件,displayform函数处理表单及其输入

def displayform(request,user_pk):
    user=User.objects.get(id=user_pk)
    if request.user.is_active and request.user.id==user.id:
        if request.user.is_authenticated():
            if request.POST:
                form=InpurDateForDisplay(request.POST)
                if form.is_valid():
                    dd=form.cleaned_data['dd']
                    mm=form.cleaned_data['mm']
                    yy=form.cleaned_data['yy']
                    data=user.link_set.filter(date=datetime.date(day=dd,month=mm,year=yy))
                    return render_to_response('app1/display.html',{'data':data,})
            else:
                form=InpurDateForDisplay()
            return render(request,'app1/displayform.html',{'form':form,})
    else:
        return render(request,'app1/error.html')

1 个答案:

答案 0 :(得分:0)

Django有一组用于显示基于时间的内容的通用视图:Generic date views

如果您未对模型进行任何更改,则应使用GET参数来过滤返回的结果。

类似的东西:

<!DOCTYPE html>
<HTML>
    <HEAD>
        <META charset="UTF-8" />
        <TITLE>Searchin engine</TITLE>
    </HEAD>
    <BODY>
        <SCRIPT src="js_search.js"></SCRIPT>
        <FORM>
            <INPUT type="text" id="word" size="40" />
        </FORM>
         <BUTTON onclick="searchProduct(document.getElementById('word').value)">Hledat</BUTTON>
        <P id="display"></P>

    </BODY>
</HTML>