【问题标题】:Django: Store a CSS class in databaseDjango:在数据库中存储一个 CSS 类
【发布时间】:2025-12-12 17:20:05
【问题描述】:

所以我制作了一个 HTML 按钮,点击它时,会使用一些 Jquery/javascript 逻辑向其中添加一个 CSS 类。有什么方法可以将此动画存储在我的数据库中,以便在页面刷新时该类仍应保留。或者如果我可以用 Javascript 做到这一点。一些指导将不胜感激。

问候 范思哲

【问题讨论】:

    标签: javascript jquery css django django-database


    【解决方案1】:

    你有很多方法可以实现你想要的。我建议使用用户浏览器的localStorage (docs) 来保存该类:

    localStorage.setItem('buttonClass', 'some-class');
    

    然后当您刷新页面时,只需检查 localStorage 是否有 buttonClass 键集。

    const savedClass = localStorage.getItem('buttonClass');
    if (savedClass) {
      // automatically add to your button
    } else {
      // behave as usual
    }
    

    如果您认为它不够永久,您可以使用 Django 会话来存储该值。这比将其存储在其他表上要好,但比使用 JavaScript 和本地存储要差得多:

    def your_view(request):
        button_class = request.session.get('saved_button_class')
        context = {
            'saved_button_class': button_class
        }
        render(request, 'templates/index.html', context=context)
    

    在您的模板中检查saved_button_class 变量。

    您必须实现将接受 AJAX 请求的新视图,告知用户已单击该按钮。

    from django.http import JsonResponse
    
    def ajax_view(request):
        request.session['saved_button_class'] = 'button_class'
        return JsonResponse({'saved': True})
    

    然后在页面刷新时,您将在用户会话中拥有saved_button_class

    【讨论】:

    • 这就是我一直在寻找的!非常感谢先生:)