如何在Django中创建用户状态活动-停用切换按钮



我想要Django中有这样的东西。在此处输入图像描述有人能告诉我应该如何在html模板和views.py中编码吗?

如果您想在单击时更改布尔字段值的状态,则需要使用Jquery。

我创建了一个名为toggle的应用程序,所以你需要用你的应用程序名称替换它,并使用你的状态按钮。

这是的完整代码

urls.py::

from django.urls import path
from toggle.views import home, toggle
urlpatterns = [
path('', home),
path('toggle/', toggle),
]

视图.py:

from django.shortcuts import render
def home(request):
w, created = Work_Experience.objects.get_or_create(id=1)
return render(request,'home.html', {'workexperiance': w})
from django.http import HttpResponse
from toggle.models import Work_Experience
def toggle(request):
w = Work_Experience.objects.get(id=request.POST['id'])
w.is_working = request.POST['isworking'] == 'true'
w.save()
return HttpResponse('success')

home.html:

<div style="display:inline-block">
<label>Currently working here?</label>
<label class="switch">
<input type="checkbox" id="checkbox" value="{{workexperiance.is_working}}">
<span class="slider round"></span>
</label>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script> <!-- Import Jquery Here-->
<script type="text/javascript">
$(document).ready(function() {
$('#checkbox').change(function() {
$.post("/toggle/", {
id: '{{workexperiance.id}}', 
isworking: this.checked, 
csrfmiddlewaretoken: '{{ csrf_token }}' 
});
});
}); 
</script>

运行:/manage.py运行服务器并访问:http://localhost:8000

当你点击当前在这里工作?复选框将立即改变布尔字段值";正在工作";。

参考最初回答的问题:最初应答的链接

最新更新