Django问题在这里。所以在我的base.html中,我有一个标题。标题包含指向用户特定页面的链接。也就是说,URL类似于:/ 1234 / home,/ 1234 / about等,其中1234是用户的id。我的问题是,如果我想创建一个指向名为home
并且签名为home (request, user=0)
的django视图方法的URL,其中user
是与登录用户不同的用户,我该怎么办?这在模板中?为了澄清,我使用Django的{% url ... %}
模板标签,我不能只做{% url [view_name] request.user.id %}
因为我想要来自url的用户id,而不是登录用户的id。另外,我宁愿避免传递模板变量来获取url中用户的id,因为那时我必须在每个页面上都这样做。
答案 0 :(得分:0)
Get the id
您希望kwarg
作为{url ...}
视图,并通过要在{{1}}中使用的上下文将其作为变量传递给您的模板。
答案 1 :(得分:0)
如果要在所有模板中保留变量,请查看上下文处理器。它们会添加到每个RequestContext
,以便所有模板都可以访问它们,前提是您使用render
快捷方式或将RequestContext
传递给template.render
。
https://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext
https://github.com/django/django/blob/stable/1.5.x/django/core/context_processors.py
django使用了一些默认值。添加自己的相当简单。 我想你的上下文处理器看起来像
context_processors.py
def id_from_url(request):
# Find url id component in request.path
return { 'url_id' : url_id }
然后只需添加到您的设置文件appname.context_processors.id_from_url