如何解决如何为匿名用户添加暗模式
我正在使用 Django,我在我的网站上添加了暗模式。但是只针对登录用户,有没有办法给匿名用户添加?
代码:
class Mood(models.Model):
user = models.ForeginKey(User,null=True,blank=True,related_name=dark)
然后我检查它是否存在于模板视图函数中:
dark = Mood.object.filter(user=request.user)
Context={'dark':dark}
然后我在模板中检查它
{% if dark %}
add css file for dark mood
{%else%}
Css light mood file
{%endif%}
现在为登录用户添加暗模式的唯一方法是为匿名用户添加其他方法吗?
解决方法
您可以将用户喜欢的模式存储在 session [Django docs] 变量中。假设有一个视图可以切换用户想要使用的模式:
from django.shortcuts import redirect
def toggle_css_mode(request):
css_mode = request.session.get('css_mode','light')
request.session['css_mode'] = 'dark' if css_mode == 'light' else 'light'
return redirect(request.META.get('HTTP_REFERER','/')) # redirect to last page or index / home page if none
你会有一些锚标签链接到这个视图来切换 css 模式。
现在在您的模板中,您可以通过以下方式呈现相关的 css:
{% if request.session.css_mode == "dark" %}
css file for dark mode
{% else %}
css file for light mode
{% endif %}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。