【问题标题】:How to add dark mode for anonymous users如何为匿名用户添加暗模式
【发布时间】:2021-07-18 06:38:35
【问题描述】:

我正在使用 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%}

现在添加暗模式的唯一方法是登录用户,还有其他方法可以为匿名用户添加吗?

【问题讨论】:

    标签: django darkmode


    【解决方案1】:

    您可以将用户喜欢的模式存储在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 %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 2022-12-11
      • 2010-12-14
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多