0

我有一个包含以下数据的 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 返回到视图 project() 才能查询数据库。如何传递 emp_name 以及如何在 project() 中使用它?

4

2 回答 2

0

urls.py中,您可以提取emp_name并将其传递给视图。你必须使用named-groups. 有关更多详细信息,请参阅 https://docs.djangoproject.com/en/1.3/topics/http/urls/#named-groups

于 2013-02-21T05:13:58.183 回答
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})
于 2013-02-21T05:14:20.393 回答