Как изменить цвет фона html с помощью кода django
Я делаю проект и мне стало интересно, я хочу сделать кнопку в HTML, которая будет управляться в Django views.py. То есть, когда кто-то нажимает на кнопку, фон становится темным и сохраняется, то есть, если человек обновит страницу, фон все равно будет темным. Я хотел узнать, возможно ли это сделать.
Спасибо.
Это очень легко осуществимо. Нажатие кнопки можно подключить к функции jquery click, которая также включает вызов ajax:
$('#id_button).click(function(){
$('body').css({'background-color': 'dark-gray'})
$.post({% url 'change-background-color' %}, {color: 'dark-gray'}, function(){
location.reload() // to refresh the page with new background color
})
})
# urls.py
add the following path
path('change-background-color/', views.change_background_color, name='change-background-color'),
# views.py
add the following view
def change_background_color(request):
color = request.POST.get('color')
# you could save the input to a model BackgroundColor as an instance or
update a current record.
# creating an instance
BackgroundColor.objects.create(bg_color=color)
return JsonResponse({'response': 'successfully changed color'})
Теперь осталось убедиться, что цвет фона в вашем html установлен в переменную, ссылающуюся на экземпляр модели, в котором вы сохранили цвет в вызове Ajax
<body style='background-color:{{bg_color}}'></body>