1

我在 Windows 7 x64 上使用 Django 1.3 和 Python 2.7.2。

我有一个这样的 URL 模式:

url(r'^(?P<club_id>\d+)/$', 'view_club')

从模式中,我希望能够在我的模板中使用 request.GET,以便能够基于此 GET 变量 (club_id) 创建指向我的视图的 URL。我在网上阅读了我可以做到的:

{{ request.GET.club_id }}

但是,这始终显示为空白。我无法弄清楚原因。我的默认上下文处理器列表中有请求上下文处理器。

谢谢您的帮助。

4

2 回答 2

1

在您的示例中,club_id不是 GET 参数,它是 URL 中路径的一部分。您的视图函数将club_id其作为参数,然后应将其放入上下文中,以便模板可以访问它。

例如,您的视图功能:

def view_club(request, club_id):
     return render(request, "template_name.html", { 'club_id': club_id })

然后在您的模板中:

{{ club_id }}
于 2012-05-13T17:25:46.233 回答
0

如果您在 URL 中传递一个变量 - 在本例中为 club_id - 只需将其作为参数包含在请求旁边的视图函数中:

def get_club(request,club_id):
     club = Club.object.get(pk=club_id)
     return render_to_response('club.html', {'club': club})

现在在您的模板中,您可以将 {{club}} 作为单独选择的对象访问并执行 {{club.name}} 之类的操作。这也适用于具有多个对象的变量,您可以使用 for 循环进行迭代。

于 2012-05-13T17:31:43.613 回答