You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django类视图上下文保存URL中的<str:uuid_contrat>参数

解决Django类视图中获取URL路径参数的问题

你的问题出在对参数类型的误解:URL里的<str:uuid_contrat>是路径参数,而非GET查询参数(即?uuid_contrat=xxx这种形式),所以用request.GET.get是拿不到的,应该从视图的self.kwargs字典中获取。

同时你的代码里还有一个小问题:直接操作context变量但未先初始化,会导致未定义错误,需要先调用父类的get_context_data方法获取基础上下文。

修改后的views.py代码如下:

class ApplicationListView(ListView):
    model = ViewDevpermissionapplicationuser
    template_name = 'applications/applications.html'

    def get_context_data(self, *args, **kwargs):
        # 先调用父类方法生成基础上下文
        context = super().get_context_data(*args, **kwargs)
        # 从路径参数中取出uuid_contrat
        uuid_contrat = self.kwargs.get('uuid_contrat')
        # 将参数添加到上下文供模板使用
        context['uuid_contrat'] = uuid_contrat
        # 更新用户信息到上下文
        context.update(
            user=self.request.session.get('user', {'is_authenticated': False})
        )
        return context

关键说明:

  • Django会自动把URL路径中定义的参数(如<str:uuid_contrat>)解析后存入视图实例的self.kwargs字典,通过self.kwargs.get('参数名')即可获取。
  • 必须先调用super().get_context_data()获取父类生成的上下文对象,否则直接操作context会触发NameError。
  • 如果后续需要在其他视图方法(比如get_queryset)中使用这个参数,同样可以通过self.kwargs.get('uuid_contrat')获取。

内容的提问来源于stack exchange,提问作者user19632683

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 07:24:19