Django 在使用默认视图时将自定义变量传递给模板

Django Pass custom variables to template while using default views

我目前使用的是默认的 Django 视图 (PasswordChangeView),但我有自己的自定义模板,我想使用它。我通过写这个来实现这个:

path('changepassword/', PasswordChangeView.as_view(template_name='account/change_password.html', 
                                     success_url = '/changepassword/'), name='password_change'),

但在该模板中有一个变量,如下所示:{{ var }}。有没有一种方法可以将值从 urls.py 传递给该变量?或者我是否需要创建一个全新的自定义视图来传递这个单一变量?

是的,您可以通过以下方式传递额外的参数:

path(
    'changepassword/',
    PasswordChangeView.as_view(
        template_name='account/change_password.html', 
        success_url = '/changepassword/'
    ),
    name='password_change',
    <b>kwargs={'var': <i>value_of_var</i>}</b>
),

value_of_var 替换为 {{ var }} 应该使用的值。这是可行的,因为 URL 参数也作为变量传递给模板。