如何使用 javascript 在 django 模板中设置变量并将其传递给 views.py?
How to set variable inside django template with javascript and pass it to views.py?
我想在我的 django 网站上添加一个暗模式选项,当你按下一个按钮时,我想将一个变量 dark-mode
设置为 True
,当你再次按下它时,它会设置 dark-mode
到 False
使用 javascript,在 views.py
它将根据 dark-mode
变量将模板名称设置为 home-dark.html
或 home-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')
我想在我的 django 网站上添加一个暗模式选项,当你按下一个按钮时,我想将一个变量 dark-mode
设置为 True
,当你再次按下它时,它会设置 dark-mode
到 False
使用 javascript,在 views.py
它将根据 dark-mode
变量将模板名称设置为 home-dark.html
或 home-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')