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,因为那样我就必须在每个页面上都这样做。
问问题
327 次
2 回答
0
获取id
您想要kwarg
的视图,并将其作为变量通过上下文传递给您的模板以在{url ...}
.
于 2013-10-15T22:39:09.587 回答
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
于 2013-10-15T23:36:18.683 回答