如何将变量发送到通用视图调用的模板

时间:2013-06-29 23:20:30

标签: django django-templates django-generic-views

在我的django项目中,我不得不创建一些静态页面,如帮助页面,关于我们页面,常见问题页面等,我需要用户名出现在这些页面的某个地方,但由于它们是通用视图调用的,我不知道在关于通用视图时如何将变量发送到模板。

提前致谢。

2 个答案:

答案 0 :(得分:2)

在这种情况下,如果您使用djangos auth系统,则无需将用户名传递给模板。您可以在模板中访问request.user。看看How to access the user profile in a Django template?。无论如何,如果您想将其他变量传递给通用视图,请查看此处How to pass parameters to django generic views

答案 1 :(得分:2)

请参阅@Jingo所说的帖子,如果你想在通用视图中添加一些变量,只需覆盖'get_context_data'函数。

class ExampleView(TemplateView): # Or another generic view
    template_name = "example.html"

    def get_context_data(self, **kwargs):
        context = super(ExampleView, self).get_context_data(**kwargs)
        #If you dont call 'super', you wont have the context processor varibles
        #  like 'user'
        context['var_name'] = "var content" # you can add template variables!
        return context # dont forget to return it!