我有一个带有以下数据的DB Emp:
id|name|project
1|tom|p01
2|tom|p02
3|tom|p03
4|mat|p04
5|mat|p05
6|katie|p06
我在html页面name.html中显示不同的Emp.name,如下所示:
<a href="emp/{{ Emp.name }}/project/">{{ Emp.name }}</a>
现在,当用户选择一个特定的Emp.name时,我想在新的html页面project.html中显示该名称的所有项目值。所以我需要编写如下视图:
def project(request, ***emp_name***):
proj_list = Emp.objects.filter(name=***emp_name***)
t = loader.get_template('name/project.html')
c = Context({
'proj_list': proj_list,
})
return HttpResponse(t.render(c))
name.html必须将emp_name返回到视图项目()才能查询数据库。如何传递emp_name以及如何在project()中使用它?
答案 0 :(得分:0)
从urls.py
,您可以提取emp_name
并将其传递给视图。您必须使用named-groups
。有关详细信息,请参阅
https://docs.djangoproject.com/en/1.3/topics/http/urls/#named-groups
答案 1 :(得分:0)
首先,您需要一个将参数传递给视图的URL模式:
from django.conf.urls.defaults import url, patterns
urlpatterns = patterns('your_module.views',
url(r'^emp/(?P<emp_name>\w+)/project/$', 'project', name='projects'),
)
然后你需要重构你的观点:
from django.shortcuts import render
from your_module.models import Emp
def project(request, emp_name):
proj_list = Emp.objects.filter(name=emp_name)
return render(request, 'name/project.html', {'proj_list': proj_list})