【发布时间】:2021-10-18 01:44:43
【问题描述】:
如何使用 ajax 将 is_read 复选框字段提交到数据库中?
当我尝试勾选复选框字段时,我收到此错误core.models.Article.DoesNotExist: Article matching query does not exist.
models.py
class Article(models.Model):
title = models.CharField(max_length=300)
is_read = models.BooleanField(default=False)
views.py
@csrf_exempt
def Story_status_update(request):
if request.method == 'POST':
pk = request.POST.get('pk')
item = Article.objects.get(id=pk)
print(item)
item.is_read = True
item.save()
return JsonResponse({'succes': True}, status=200)
else:
return JsonResponse({'succes': False, 'errors': []}, status=400)
HTML
<tbody>
{% for object in articles %}
<tr data-pk="{{ object.id }}">
<td>{{ object.title }}</td>
<td><input type="checkbox" data-id="{{ object.id }}" name="is_read" id="id_is_read" /></td>
</tr>
{% endfor %}
</tbody>
ajax.js
$("#id_is_read").click(function () {
var pk = $('tr').attr("data-pk");
$.ajax({
type: "Post",
contentType: "application/json;",
url: "{% url 'status-update' %}",
data: { pk: pk },
dataType: "json",
success: function (response) {
console.log(response)
},
});
});
【问题讨论】:
标签: javascript python jquery django ajax