0

次のデータを含む DB Emp があります。

id|name|project
1|tom|p01
2|tom|p02
3|tom|p03
4|mat|p04
5|mat|p05
6|katie|p06

以下のように、個別の Emp.name を html ページ name.html に表示します。

<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 は、DB にクエリを実行するために、ビュー project() に emp_name を返す必要があります。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 に答える