在Django Template中获取URL编码的request.GET变量的值

时间:2012-05-13 17:18:40

标签: django django-templates

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

我有这样的网址格式:

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

从模式中我希望能够在我的模板中使用request.GET,以便能够基于此GET变量(club_id)为我的视图创建URL。我已经在线阅读了我能够做到的事情:

{{ request.GET.club_id }}

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

感谢您的帮助。

2 个答案:

答案 0 :(得分: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 }}

答案 1 :(得分: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循环进行迭代。