【发布时间】:2021-04-21 23:41:19
【问题描述】:
我希望在我的 Django 中有这样的东西。 enter image description here 谁能告诉我应该如何在 html 模板和 views.py 中编码?
【问题讨论】:
标签: django
我希望在我的 Django 中有这样的东西。 enter image description here 谁能告诉我应该如何在 html 模板和 views.py 中编码?
【问题讨论】:
标签: django
如果你想在点击时改变布尔字段值的状态,你需要使用Jquery。
我创建了一个名为 toggle 的应用,因此您需要将其替换为您的应用名称,并将 is_working 替换为您的状态按钮。
这是完整的代码
urls.py::
from django.urls import path
from toggle.views import home, toggle
urlpatterns = [
path('', home),
path('toggle/', toggle),
]
views.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 runserver 并访问:http://localhost:8000
当您单击“当前在此处工作”时?复选框,将立即更改布尔字段值“is_working”。
参考最初回答的问题: Originally answered link
【讨论】: