8

在我的 url conf 中,我有几个 URL 具有相同的命名参数user_id。是否可以在中间件中访问此参数 - 这样我通常可以将其传递给 context_data - 或在模板本身中?

示例 URL conf 来说明问题:

url(r'^b/(?P<user_id>[0-9]+)/edit?$', user.edit.EditUser.as_view(), name='user_edit'),
url(r'^b/(?P<user_id>[0-9]+)/delete?$', user.delete.DeleteUser.as_view(), name='user_delete')
4

3 回答 3

14

对于基于类的视图,view它已经在上下文中可用,因此您不需要在视图端做任何事情。在模板中,只需执行以下操作:

{{ view.kwargs.user_id }}

看到这个答案

于 2018-02-22T05:40:38.860 回答
6

如果您需要模板中的这些数据,只需覆盖视图的get_context_data方法:

class MyView(View):
    def get_context_data(self, **kwargs):
        context = super(MyView, self).get_context_data(**kwargs)
        context['user_id'] = self.kwargs.get('user_id')
        return context
于 2012-03-06T15:50:03.567 回答
0

对于基于函数的视图:

模板

{% url 'view' PARAM=request.resolver_match.kwargs.PARAM %}

视图.py

def myview(request, PARAM):
    ...

姜戈 2.2

于 2020-07-09T12:49:54.910 回答