如何使用 javascript 在 django 模板中设置变量并将其传递给 views.py?

How to set variable inside django template with javascript and pass it to views.py?

我想在我的 django 网站上添加一个暗模式选项,当你按下一个按钮时,我想将一个变量 dark-mode 设置为 True,当你再次按下它时,它会设置 dark-modeFalse 使用 javascript,在 views.py 它将根据 dark-mode 变量将模板名称设置为 home-dark.htmlhome-light.html ,我怎样才能做到这一点?

如果你需要知道,我使用 Materialize CSS

感谢从现在开始

您可以在 url 中传递它并在您的 view 中设置条件,例如:

# your button should href to domain.com/your_view/?mode={your variable}
# then in your view
if request.GET.get('mode') == 'dark':
    return render(request, 'home-dark.html')
return render(request, 'home-light.html')

但这仅适用于一个页面,如果您想在整个会话中保留它,我建议您将其添加到 request.session 中,然后您可以在任何视图中访问它。例如:

# in the above view before returning:
request.session['browse_mode'] = 'dark'

# then in all your views
if request.session.get('browse_mode') == 'dark':
    return render(request, 'dark-mode.html')
return render(request, 'light-mode.html')