Django在使用默认视图时将自定义变量传递给模板
Posted
技术标签:
【中文标题】Django在使用默认视图时将自定义变量传递给模板【英文标题】:Django Pass custom variables to template while using default views 【发布时间】:2020-10-16 09:54:59 【问题描述】:我目前正在使用默认的 django 视图 (PasswordChangeView),但我有自己的自定义模板,我想使用它。我通过写这个来实现这一点:
path('changepassword/', PasswordChangeView.as_view(template_name='account/change_password.html',
success_url = '/changepassword/'), name='password_change'),
但是在那个模板中有一个像这样的变量: var
。有没有办法可以将值从 urls.py 传递给该变量?还是我需要创建一个全新的自定义视图来传递这个单一变量?
【问题讨论】:
【参考方案1】:是的,你可以传递额外的参数:
path(
'changepassword/',
PasswordChangeView.as_view(
template_name='account/change_password.html',
success_url = '/changepassword/'
),
name='password_change',
kwargs='var': value_of_var
),
将 value_of_var
替换为应使用的值 var
。这是可行的,因为 URL 参数也作为变量传递给模板。
【讨论】:
抱歉,我的问题不够具体。这适用于固定值变量,但是有没有办法根据“请求”传递东西? (比如request.user.is_anonymous,通常我可以在视图中使用。) 像这样:***.com/questions/4838480/… 但对于较新的 django 版本 @figbar:request
对象也被传递给模板,因此您可以例如在模板中写入% if request.user.is_authenticated %...% endif %
。以上是关于Django在使用默认视图时将自定义变量传递给模板的主要内容,如果未能解决你的问题,请参考以下文章