在 Django 模板中访问 get 方法数据

Posted

技术标签:

【中文标题】在 Django 模板中访问 get 方法数据【英文标题】:Accessing get method data in Django Template 【发布时间】:2014-10-13 23:42:29 【问题描述】:

我已经阅读了文档和其他内容,尝试了很多 tuts 但仍然没有运气。我想要实现的是显示自定义错误消息。

我有这个:/?message=success

并且想在我的 Django 模板中访问这些数据

class mysite(TemplateView):
    template_name = 'index.html'

    def get_context_data(self, **kwargs):
        context = super(mysite, self).get_context_data(**kwargs)
        return context

    def get(self, request, *args, **kwargs):
        return super(mysite, self).get(request, *args, **kwargs)

我如何在我的模板文件中访问它:

message

这没有输出。我需要的是 success 被阅读。然后我会在它的基础上做一个条件块。

【问题讨论】:

【参考方案1】:

您可以通过将get_context_data 方法更改为

,将message 添加到模板上下文中
def get_context_data(self, **kwargs):
    context = super(mysite, self).get_context_data(**kwargs)
    context['message'] = self.request.GET.get('message', '') # default to empty string if not in GET data
    return context

然后使用以下命令访问模板中的消息:

 message 

或者,确保您使用request template context processor,以使request 对象在您的模板中可用。

然后在您的模板中,您可以通过以下方式访问 GET 数据:

 request.GET 

和消息参数:

 request.GET.message 

【讨论】:

以上是关于在 Django 模板中访问 get 方法数据的主要内容,如果未能解决你的问题,请参考以下文章

Django模板访问嵌套数据

Django - 在模板中格式化/访问 Pandas.to_dict() 数据框

Django:从模板中访问会话变量?

如何在 Django 模板中使用变量索引访问列表?

django 无法访问模板中的 jsonfield 数据

Django从父对象访问模板中的子数据