我已经生成了一个从用户那里获取输入的表单,我根据输入进行查询并将查询结果存储在变量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')
答案 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>