0

Django 问题在这里。所以在我的 base.html 中,我有一个标题。标题具有指向用户特定页面的链接。也就是说,URL 类似于:/1234/home、/1234/about 等,其中 1234 是用户的 id。我的问题是,如果我想创建一个指向home带有签名的 django 视图方法的 url ,与登录用户不同的用户在home (request, user=0)哪里,我将如何在模板中执行此操作?user澄清一下,我正在使用 Django 的{% url ... %}模板标签,我不能这样做{% url [view_name] request.user.id %},因为我想要来自 url 的用户 id,而不是登录用户的 id。此外,我宁愿避免传递模板变量来获取 url 中用户的 id,因为那样我就必须在每个页面上都这样做。

4

2 回答 2

0

获取id您想要kwarg的视图,并将其作为变量通过上下文传递给您的模板以在{url ...}.

于 2013-10-15T22:39:09.587 回答
0

如果您想在所有模板中保留一个变量,请查看上下文处理器。它们被添加到每个RequestContext模板中,因此假设您使用render快捷方式或RequestContexttemplate.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

于 2013-10-15T23:36:18.683 回答