Как добавить данные в базу данных Django одним нажатием кнопки с помощью JS
Я пытаюсь добавить эти данные в базу данных при нажатии на них. Они обновляются на моем сайте, который является статическим. Но данные не обновляются в базе данных.
Отображение списка из базы данных на index.html
<ul id="myUL">
{% for name in names %}
{% if name.com == True %}
<li class="checked">{{name.names}}</li>
{% else %}
<li>{{name.names}}</li>
{% endif %}
{% endfor %}
</ul>
Код на JavaScript в index.html. Я хочу сделать так, чтобы если я нажму на кнопку, то данные будут добавлены в базу данных. Затем, если я обновлю страницу, то будет показана новая задача, которую я реализовал. Она покажет.
Также при проверке элемента будет обновляться значение true или false. Когда я проверю одну из задач, она автоматически обновит базу данных.
// Add a "checked" symbol when clicking on a list item
var list = document.querySelector('ul');
list.addEventListener('click', function(ev) {
if (ev.target.tagName === 'LI') {
ev.target.classList.toggle('checked');
}
}, false);
// Create a new list item when clicking on the "Add" button
function newElement() {
var li = document.createElement("li");
var inputValue = document.getElementById("myInput").value;
var t = document.createTextNode(inputValue);
li.appendChild(t);
if (inputValue === '') {
alert("You must write something!");
} else {
document.getElementById("myUL").appendChild(li);
}
document.getElementById("myInput").value = "";
var span = document.createElement("SPAN");
var txt = document.createTextNode("\u00D7");
span.className = "close";
span.appendChild(txt);
li.appendChild(span);
for (i = 0; i < close.length; i++) {
close[i].onclick = function() {
var div = this.parentElement;
div.style.display = "none";
}
}
}
models.py
from django.db import models
# Create your models here.
class todo(models.Model):
names = models.CharField(max_length=128)
com = models.BooleanField()
def __str__(self):
return f"{self.names} ({self.com})"
views.py
from django.shortcuts import render
from .models import todo
# Create your views here.
def index(request):
return render(request, "mytasks/index.html", {
"names": todo.objects.all()
})