【问题标题】:How to set variable inside django template with javascript and pass it to views.py?如何使用javascript在django模板中设置变量并将其传递给views.py?
【发布时间】:2020-06-12 15:45:21
【问题描述】:
我想在我的 django 网站上添加一个暗模式选项,当您按下按钮时,我想将变量 dark-mode 设置为 True,当您再次按下时,它将使用 javascript 将 dark-mode 设置为 False , 在views.py 它将根据dark-mode 变量将模板名称设置为home-dark.html 或home-light.html,我该如何实现呢?
如果你需要知道,我使用 Materialize CSS
从现在开始感谢
【问题讨论】:
标签:
javascript
python
html
django
materialize
【解决方案1】:
您可以在 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')