Django:在数据库中存储一个 CSS class

Django: Store a CSS class in database

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

问候 范希

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

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

稍后当您刷新页面时,只需检查 localStorage 是否设置了 buttonClass 键。

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

如果您认为它不够永久,您可以使用 Django 会话来存储该值。这比将它存储在其他 table 上要好,但比使用 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 在用户会话中